Minero
Loading...
Searching...
No Matches
avx512fintrin.h
Go to the documentation of this file.
1/* Copyright (C) 2013-2022 Free Software Foundation, Inc.
2
3 This file is part of GCC.
4
5 GCC is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3, or (at your option)
8 any later version.
9
10 GCC is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 Under Section 7 of GPL version 3, you are granted additional
16 permissions described in the GCC Runtime Library Exception, version
17 3.1, as published by the Free Software Foundation.
18
19 You should have received a copy of the GNU General Public License and
20 a copy of the GCC Runtime Library Exception along with this program;
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
22 <http://www.gnu.org/licenses/>. */
23
24#ifndef _IMMINTRIN_H_INCLUDED
25#error "Never use <avx512fintrin.h> directly; include <immintrin.h> instead."
26#endif
27
28#ifndef _AVX512FINTRIN_H_INCLUDED
29#define _AVX512FINTRIN_H_INCLUDED
30
31#ifndef __AVX512F__
32#pragma GCC push_options
33#pragma GCC target("avx512f")
34#define __DISABLE_AVX512F__
35#endif /* __AVX512F__ */
36
37/* Internal data types for implementing the intrinsics. */
38typedef double __v8df __attribute__ ((__vector_size__ (64)));
39typedef float __v16sf __attribute__ ((__vector_size__ (64)));
40typedef long long __v8di __attribute__ ((__vector_size__ (64)));
41typedef unsigned long long __v8du __attribute__ ((__vector_size__ (64)));
42typedef int __v16si __attribute__ ((__vector_size__ (64)));
43typedef unsigned int __v16su __attribute__ ((__vector_size__ (64)));
44typedef short __v32hi __attribute__ ((__vector_size__ (64)));
45typedef unsigned short __v32hu __attribute__ ((__vector_size__ (64)));
46typedef char __v64qi __attribute__ ((__vector_size__ (64)));
47typedef unsigned char __v64qu __attribute__ ((__vector_size__ (64)));
48
49/* The Intel API is flexible enough that we must allow aliasing with other
50 vector types, and their scalar components. */
51typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
52typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__));
53typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
54
55/* Unaligned version of the same type. */
56typedef float __m512_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
57typedef long long __m512i_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
58typedef double __m512d_u __attribute__ ((__vector_size__ (64), __may_alias__, __aligned__ (1)));
59
60typedef unsigned char __mmask8;
61typedef unsigned short __mmask16;
62
63extern __inline __mmask16
64__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
65_mm512_int2mask (int __M)
66{
67 return (__mmask16) __M;
68}
69
70extern __inline int
71__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
72_mm512_mask2int (__mmask16 __M)
73{
74 return (int) __M;
75}
76
77extern __inline __m512i
78__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
79_mm512_set_epi64 (long long __A, long long __B, long long __C,
80 long long __D, long long __E, long long __F,
81 long long __G, long long __H)
82{
83 return __extension__ (__m512i) (__v8di)
84 { __H, __G, __F, __E, __D, __C, __B, __A };
85}
86
87/* Create the vector [A B C D E F G H I J K L M N O P]. */
88extern __inline __m512i
89__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
90_mm512_set_epi32 (int __A, int __B, int __C, int __D,
91 int __E, int __F, int __G, int __H,
92 int __I, int __J, int __K, int __L,
93 int __M, int __N, int __O, int __P)
94{
95 return __extension__ (__m512i)(__v16si)
96 { __P, __O, __N, __M, __L, __K, __J, __I,
97 __H, __G, __F, __E, __D, __C, __B, __A };
98}
99
100extern __inline __m512i
101__attribute__((__gnu_inline__, __always_inline__, __artificial__))
102_mm512_set_epi16 (short __q31, short __q30, short __q29, short __q28,
103 short __q27, short __q26, short __q25, short __q24,
104 short __q23, short __q22, short __q21, short __q20,
105 short __q19, short __q18, short __q17, short __q16,
106 short __q15, short __q14, short __q13, short __q12,
107 short __q11, short __q10, short __q09, short __q08,
108 short __q07, short __q06, short __q05, short __q04,
109 short __q03, short __q02, short __q01, short __q00)
110{
111 return __extension__ (__m512i)(__v32hi){
116 };
117}
118
119extern __inline __m512i
120__attribute__((__gnu_inline__, __always_inline__, __artificial__))
121_mm512_set_epi8 (char __q63, char __q62, char __q61, char __q60,
122 char __q59, char __q58, char __q57, char __q56,
123 char __q55, char __q54, char __q53, char __q52,
124 char __q51, char __q50, char __q49, char __q48,
125 char __q47, char __q46, char __q45, char __q44,
126 char __q43, char __q42, char __q41, char __q40,
127 char __q39, char __q38, char __q37, char __q36,
128 char __q35, char __q34, char __q33, char __q32,
129 char __q31, char __q30, char __q29, char __q28,
130 char __q27, char __q26, char __q25, char __q24,
131 char __q23, char __q22, char __q21, char __q20,
132 char __q19, char __q18, char __q17, char __q16,
133 char __q15, char __q14, char __q13, char __q12,
134 char __q11, char __q10, char __q09, char __q08,
135 char __q07, char __q06, char __q05, char __q04,
136 char __q03, char __q02, char __q01, char __q00)
137{
138 return __extension__ (__m512i)(__v64qi){
146 __q56, __q57, __q58, __q59, __q60, __q61, __q62, __q63
147 };
148}
149
150extern __inline __m512d
151__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
152_mm512_set_pd (double __A, double __B, double __C, double __D,
153 double __E, double __F, double __G, double __H)
154{
155 return __extension__ (__m512d)
156 { __H, __G, __F, __E, __D, __C, __B, __A };
157}
158
159extern __inline __m512
160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
161_mm512_set_ps (float __A, float __B, float __C, float __D,
162 float __E, float __F, float __G, float __H,
163 float __I, float __J, float __K, float __L,
164 float __M, float __N, float __O, float __P)
165{
166 return __extension__ (__m512)
167 { __P, __O, __N, __M, __L, __K, __J, __I,
168 __H, __G, __F, __E, __D, __C, __B, __A };
169}
170
171#define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7) \
172 _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
173
174#define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7, \
175 e8,e9,e10,e11,e12,e13,e14,e15) \
176 _mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
177
178#define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7) \
179 _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
180
181#define _mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) \
182 _mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
183
184extern __inline __m512
185__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
186_mm512_undefined_ps (void)
187{
188 __m512 __Y = __Y;
189 return __Y;
190}
191
192#define _mm512_undefined _mm512_undefined_ps
193
194extern __inline __m512d
195__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
196_mm512_undefined_pd (void)
197{
198 __m512d __Y = __Y;
199 return __Y;
200}
201
202extern __inline __m512i
203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
204_mm512_undefined_epi32 (void)
205{
206 __m512i __Y = __Y;
207 return __Y;
208}
209
210#define _mm512_undefined_si512 _mm512_undefined_epi32
211
212extern __inline __m512i
213__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
214_mm512_set1_epi8 (char __A)
215{
216 return __extension__ (__m512i)(__v64qi)
217 { __A, __A, __A, __A, __A, __A, __A, __A,
218 __A, __A, __A, __A, __A, __A, __A, __A,
219 __A, __A, __A, __A, __A, __A, __A, __A,
220 __A, __A, __A, __A, __A, __A, __A, __A,
221 __A, __A, __A, __A, __A, __A, __A, __A,
222 __A, __A, __A, __A, __A, __A, __A, __A,
223 __A, __A, __A, __A, __A, __A, __A, __A,
224 __A, __A, __A, __A, __A, __A, __A, __A };
225}
226
227extern __inline __m512i
228__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
229_mm512_set1_epi16 (short __A)
230{
231 return __extension__ (__m512i)(__v32hi)
232 { __A, __A, __A, __A, __A, __A, __A, __A,
233 __A, __A, __A, __A, __A, __A, __A, __A,
234 __A, __A, __A, __A, __A, __A, __A, __A,
235 __A, __A, __A, __A, __A, __A, __A, __A };
236}
237
238extern __inline __m512d
239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
240_mm512_set1_pd (double __A)
241{
242 return __extension__ (__m512d)(__v8df)
243 { __A, __A, __A, __A, __A, __A, __A, __A };
244}
245
246extern __inline __m512
247__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
248_mm512_set1_ps (float __A)
249{
250 return __extension__ (__m512)(__v16sf)
251 { __A, __A, __A, __A, __A, __A, __A, __A,
252 __A, __A, __A, __A, __A, __A, __A, __A };
253}
254
255/* Create the vector [A B C D A B C D A B C D A B C D]. */
256extern __inline __m512i
257__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
258_mm512_set4_epi32 (int __A, int __B, int __C, int __D)
259{
260 return __extension__ (__m512i)(__v16si)
261 { __D, __C, __B, __A, __D, __C, __B, __A,
262 __D, __C, __B, __A, __D, __C, __B, __A };
263}
264
265extern __inline __m512i
266__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
267_mm512_set4_epi64 (long long __A, long long __B, long long __C,
268 long long __D)
269{
270 return __extension__ (__m512i) (__v8di)
271 { __D, __C, __B, __A, __D, __C, __B, __A };
272}
273
274extern __inline __m512d
275__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
276_mm512_set4_pd (double __A, double __B, double __C, double __D)
277{
278 return __extension__ (__m512d)
279 { __D, __C, __B, __A, __D, __C, __B, __A };
280}
281
282extern __inline __m512
283__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
284_mm512_set4_ps (float __A, float __B, float __C, float __D)
285{
286 return __extension__ (__m512)
287 { __D, __C, __B, __A, __D, __C, __B, __A,
288 __D, __C, __B, __A, __D, __C, __B, __A };
289}
290
291#define _mm512_setr4_epi64(e0,e1,e2,e3) \
292 _mm512_set4_epi64(e3,e2,e1,e0)
293
294#define _mm512_setr4_epi32(e0,e1,e2,e3) \
295 _mm512_set4_epi32(e3,e2,e1,e0)
296
297#define _mm512_setr4_pd(e0,e1,e2,e3) \
298 _mm512_set4_pd(e3,e2,e1,e0)
299
300#define _mm512_setr4_ps(e0,e1,e2,e3) \
301 _mm512_set4_ps(e3,e2,e1,e0)
302
303extern __inline __m512
304__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
305_mm512_setzero_ps (void)
306{
307 return __extension__ (__m512){ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
308 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
309}
310
311extern __inline __m512
312__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
313_mm512_setzero (void)
314{
315 return _mm512_setzero_ps ();
316}
317
318extern __inline __m512d
319__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
320_mm512_setzero_pd (void)
321{
322 return __extension__ (__m512d) { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
323}
324
325extern __inline __m512i
326__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
327_mm512_setzero_epi32 (void)
328{
329 return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
330}
331
332extern __inline __m512i
333__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
334_mm512_setzero_si512 (void)
335{
336 return __extension__ (__m512i)(__v8di){ 0, 0, 0, 0, 0, 0, 0, 0 };
337}
338
339extern __inline __m512d
340__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
341_mm512_mask_mov_pd (__m512d __W, __mmask8 __U, __m512d __A)
342{
343 return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
344 (__v8df) __W,
345 (__mmask8) __U);
346}
347
348extern __inline __m512d
349__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
350_mm512_maskz_mov_pd (__mmask8 __U, __m512d __A)
351{
352 return (__m512d) __builtin_ia32_movapd512_mask ((__v8df) __A,
353 (__v8df)
354 _mm512_setzero_pd (),
355 (__mmask8) __U);
356}
357
358extern __inline __m512
359__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
360_mm512_mask_mov_ps (__m512 __W, __mmask16 __U, __m512 __A)
361{
362 return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
363 (__v16sf) __W,
364 (__mmask16) __U);
365}
366
367extern __inline __m512
368__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
369_mm512_maskz_mov_ps (__mmask16 __U, __m512 __A)
370{
371 return (__m512) __builtin_ia32_movaps512_mask ((__v16sf) __A,
372 (__v16sf)
373 _mm512_setzero_ps (),
374 (__mmask16) __U);
375}
376
377extern __inline __m512d
378__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
379_mm512_load_pd (void const *__P)
380{
381 return *(__m512d *) __P;
382}
383
384extern __inline __m512d
385__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
386_mm512_mask_load_pd (__m512d __W, __mmask8 __U, void const *__P)
387{
388 return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
389 (__v8df) __W,
390 (__mmask8) __U);
391}
392
393extern __inline __m512d
394__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
395_mm512_maskz_load_pd (__mmask8 __U, void const *__P)
396{
397 return (__m512d) __builtin_ia32_loadapd512_mask ((const __v8df *) __P,
398 (__v8df)
399 _mm512_setzero_pd (),
400 (__mmask8) __U);
401}
402
403extern __inline void
404__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
405_mm512_store_pd (void *__P, __m512d __A)
406{
407 *(__m512d *) __P = __A;
408}
409
410extern __inline void
411__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
412_mm512_mask_store_pd (void *__P, __mmask8 __U, __m512d __A)
413{
414 __builtin_ia32_storeapd512_mask ((__v8df *) __P, (__v8df) __A,
415 (__mmask8) __U);
416}
417
418extern __inline __m512
419__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
420_mm512_load_ps (void const *__P)
421{
422 return *(__m512 *) __P;
423}
424
425extern __inline __m512
426__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
427_mm512_mask_load_ps (__m512 __W, __mmask16 __U, void const *__P)
428{
429 return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
430 (__v16sf) __W,
431 (__mmask16) __U);
432}
433
434extern __inline __m512
435__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
436_mm512_maskz_load_ps (__mmask16 __U, void const *__P)
437{
438 return (__m512) __builtin_ia32_loadaps512_mask ((const __v16sf *) __P,
439 (__v16sf)
440 _mm512_setzero_ps (),
441 (__mmask16) __U);
442}
443
444extern __inline void
445__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
446_mm512_store_ps (void *__P, __m512 __A)
447{
448 *(__m512 *) __P = __A;
449}
450
451extern __inline void
452__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
453_mm512_mask_store_ps (void *__P, __mmask16 __U, __m512 __A)
454{
455 __builtin_ia32_storeaps512_mask ((__v16sf *) __P, (__v16sf) __A,
456 (__mmask16) __U);
457}
458
459extern __inline __m512i
460__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
461_mm512_mask_mov_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
462{
463 return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
464 (__v8di) __W,
465 (__mmask8) __U);
466}
467
468extern __inline __m512i
469__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
470_mm512_maskz_mov_epi64 (__mmask8 __U, __m512i __A)
471{
472 return (__m512i) __builtin_ia32_movdqa64_512_mask ((__v8di) __A,
473 (__v8di)
474 _mm512_setzero_si512 (),
475 (__mmask8) __U);
476}
477
478extern __inline __m512i
479__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
480_mm512_load_epi64 (void const *__P)
481{
482 return *(__m512i *) __P;
483}
484
485extern __inline __m512i
486__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
487_mm512_mask_load_epi64 (__m512i __W, __mmask8 __U, void const *__P)
488{
489 return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
490 (__v8di) __W,
491 (__mmask8) __U);
492}
493
494extern __inline __m512i
495__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
496_mm512_maskz_load_epi64 (__mmask8 __U, void const *__P)
497{
498 return (__m512i) __builtin_ia32_movdqa64load512_mask ((const __v8di *) __P,
499 (__v8di)
500 _mm512_setzero_si512 (),
501 (__mmask8) __U);
502}
503
504extern __inline void
505__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
506_mm512_store_epi64 (void *__P, __m512i __A)
507{
508 *(__m512i *) __P = __A;
509}
510
511extern __inline void
512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
513_mm512_mask_store_epi64 (void *__P, __mmask8 __U, __m512i __A)
514{
515 __builtin_ia32_movdqa64store512_mask ((__v8di *) __P, (__v8di) __A,
516 (__mmask8) __U);
517}
518
519extern __inline __m512i
520__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
521_mm512_mask_mov_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
522{
523 return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
524 (__v16si) __W,
525 (__mmask16) __U);
526}
527
528extern __inline __m512i
529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
530_mm512_maskz_mov_epi32 (__mmask16 __U, __m512i __A)
531{
532 return (__m512i) __builtin_ia32_movdqa32_512_mask ((__v16si) __A,
533 (__v16si)
534 _mm512_setzero_si512 (),
535 (__mmask16) __U);
536}
537
538extern __inline __m512i
539__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
540_mm512_load_si512 (void const *__P)
541{
542 return *(__m512i *) __P;
543}
544
545extern __inline __m512i
546__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
547_mm512_load_epi32 (void const *__P)
548{
549 return *(__m512i *) __P;
550}
551
552extern __inline __m512i
553__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
554_mm512_mask_load_epi32 (__m512i __W, __mmask16 __U, void const *__P)
555{
556 return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
557 (__v16si) __W,
558 (__mmask16) __U);
559}
560
561extern __inline __m512i
562__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
563_mm512_maskz_load_epi32 (__mmask16 __U, void const *__P)
564{
565 return (__m512i) __builtin_ia32_movdqa32load512_mask ((const __v16si *) __P,
566 (__v16si)
567 _mm512_setzero_si512 (),
568 (__mmask16) __U);
569}
570
571extern __inline void
572__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
573_mm512_store_si512 (void *__P, __m512i __A)
574{
575 *(__m512i *) __P = __A;
576}
577
578extern __inline void
579__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
580_mm512_store_epi32 (void *__P, __m512i __A)
581{
582 *(__m512i *) __P = __A;
583}
584
585extern __inline void
586__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
587_mm512_mask_store_epi32 (void *__P, __mmask16 __U, __m512i __A)
588{
589 __builtin_ia32_movdqa32store512_mask ((__v16si *) __P, (__v16si) __A,
590 (__mmask16) __U);
591}
592
593extern __inline __m512i
594__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
595_mm512_mullo_epi32 (__m512i __A, __m512i __B)
596{
597 return (__m512i) ((__v16su) __A * (__v16su) __B);
598}
599
600extern __inline __m512i
601__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
602_mm512_maskz_mullo_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
603{
604 return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
605 (__v16si) __B,
606 (__v16si)
607 _mm512_setzero_si512 (),
608 __M);
609}
610
611extern __inline __m512i
612__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
613_mm512_mask_mullo_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
614{
615 return (__m512i) __builtin_ia32_pmulld512_mask ((__v16si) __A,
616 (__v16si) __B,
617 (__v16si) __W, __M);
618}
619
620extern __inline __m512i
621__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
622_mm512_mullox_epi64 (__m512i __A, __m512i __B)
623{
624 return (__m512i) ((__v8du) __A * (__v8du) __B);
625}
626
627extern __inline __m512i
628__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
629_mm512_mask_mullox_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
630{
631 return _mm512_mask_mov_epi64 (__W, __M, _mm512_mullox_epi64 (__A, __B));
632}
633
634extern __inline __m512i
635__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
636_mm512_sllv_epi32 (__m512i __X, __m512i __Y)
637{
638 return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
639 (__v16si) __Y,
640 (__v16si)
641 _mm512_undefined_epi32 (),
642 (__mmask16) -1);
643}
644
645extern __inline __m512i
646__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
647_mm512_mask_sllv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
648{
649 return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
650 (__v16si) __Y,
651 (__v16si) __W,
652 (__mmask16) __U);
653}
654
655extern __inline __m512i
656__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
657_mm512_maskz_sllv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
658{
659 return (__m512i) __builtin_ia32_psllv16si_mask ((__v16si) __X,
660 (__v16si) __Y,
661 (__v16si)
662 _mm512_setzero_si512 (),
663 (__mmask16) __U);
664}
665
666extern __inline __m512i
667__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
668_mm512_srav_epi32 (__m512i __X, __m512i __Y)
669{
670 return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
671 (__v16si) __Y,
672 (__v16si)
673 _mm512_undefined_epi32 (),
674 (__mmask16) -1);
675}
676
677extern __inline __m512i
678__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
679_mm512_mask_srav_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
680{
681 return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
682 (__v16si) __Y,
683 (__v16si) __W,
684 (__mmask16) __U);
685}
686
687extern __inline __m512i
688__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
689_mm512_maskz_srav_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
690{
691 return (__m512i) __builtin_ia32_psrav16si_mask ((__v16si) __X,
692 (__v16si) __Y,
693 (__v16si)
694 _mm512_setzero_si512 (),
695 (__mmask16) __U);
696}
697
698extern __inline __m512i
699__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
700_mm512_srlv_epi32 (__m512i __X, __m512i __Y)
701{
702 return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
703 (__v16si) __Y,
704 (__v16si)
705 _mm512_undefined_epi32 (),
706 (__mmask16) -1);
707}
708
709extern __inline __m512i
710__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
711_mm512_mask_srlv_epi32 (__m512i __W, __mmask16 __U, __m512i __X, __m512i __Y)
712{
713 return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
714 (__v16si) __Y,
715 (__v16si) __W,
716 (__mmask16) __U);
717}
718
719extern __inline __m512i
720__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
721_mm512_maskz_srlv_epi32 (__mmask16 __U, __m512i __X, __m512i __Y)
722{
723 return (__m512i) __builtin_ia32_psrlv16si_mask ((__v16si) __X,
724 (__v16si) __Y,
725 (__v16si)
726 _mm512_setzero_si512 (),
727 (__mmask16) __U);
728}
729
730extern __inline __m512i
731__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
732_mm512_add_epi64 (__m512i __A, __m512i __B)
733{
734 return (__m512i) ((__v8du) __A + (__v8du) __B);
735}
736
737extern __inline __m512i
738__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
739_mm512_mask_add_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
740{
741 return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
742 (__v8di) __B,
743 (__v8di) __W,
744 (__mmask8) __U);
745}
746
747extern __inline __m512i
748__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
749_mm512_maskz_add_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
750{
751 return (__m512i) __builtin_ia32_paddq512_mask ((__v8di) __A,
752 (__v8di) __B,
753 (__v8di)
754 _mm512_setzero_si512 (),
755 (__mmask8) __U);
756}
757
758extern __inline __m512i
759__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
760_mm512_sub_epi64 (__m512i __A, __m512i __B)
761{
762 return (__m512i) ((__v8du) __A - (__v8du) __B);
763}
764
765extern __inline __m512i
766__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
767_mm512_mask_sub_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
768{
769 return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
770 (__v8di) __B,
771 (__v8di) __W,
772 (__mmask8) __U);
773}
774
775extern __inline __m512i
776__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
777_mm512_maskz_sub_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
778{
779 return (__m512i) __builtin_ia32_psubq512_mask ((__v8di) __A,
780 (__v8di) __B,
781 (__v8di)
782 _mm512_setzero_si512 (),
783 (__mmask8) __U);
784}
785
786extern __inline __m512i
787__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
788_mm512_sllv_epi64 (__m512i __X, __m512i __Y)
789{
790 return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
791 (__v8di) __Y,
792 (__v8di)
793 _mm512_undefined_pd (),
794 (__mmask8) -1);
795}
796
797extern __inline __m512i
798__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
799_mm512_mask_sllv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
800{
801 return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
802 (__v8di) __Y,
803 (__v8di) __W,
804 (__mmask8) __U);
805}
806
807extern __inline __m512i
808__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
809_mm512_maskz_sllv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
810{
811 return (__m512i) __builtin_ia32_psllv8di_mask ((__v8di) __X,
812 (__v8di) __Y,
813 (__v8di)
814 _mm512_setzero_si512 (),
815 (__mmask8) __U);
816}
817
818extern __inline __m512i
819__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
820_mm512_srav_epi64 (__m512i __X, __m512i __Y)
821{
822 return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
823 (__v8di) __Y,
824 (__v8di)
825 _mm512_undefined_epi32 (),
826 (__mmask8) -1);
827}
828
829extern __inline __m512i
830__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
831_mm512_mask_srav_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
832{
833 return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
834 (__v8di) __Y,
835 (__v8di) __W,
836 (__mmask8) __U);
837}
838
839extern __inline __m512i
840__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
841_mm512_maskz_srav_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
842{
843 return (__m512i) __builtin_ia32_psrav8di_mask ((__v8di) __X,
844 (__v8di) __Y,
845 (__v8di)
846 _mm512_setzero_si512 (),
847 (__mmask8) __U);
848}
849
850extern __inline __m512i
851__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
852_mm512_srlv_epi64 (__m512i __X, __m512i __Y)
853{
854 return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
855 (__v8di) __Y,
856 (__v8di)
857 _mm512_undefined_epi32 (),
858 (__mmask8) -1);
859}
860
861extern __inline __m512i
862__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
863_mm512_mask_srlv_epi64 (__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
864{
865 return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
866 (__v8di) __Y,
867 (__v8di) __W,
868 (__mmask8) __U);
869}
870
871extern __inline __m512i
872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
873_mm512_maskz_srlv_epi64 (__mmask8 __U, __m512i __X, __m512i __Y)
874{
875 return (__m512i) __builtin_ia32_psrlv8di_mask ((__v8di) __X,
876 (__v8di) __Y,
877 (__v8di)
878 _mm512_setzero_si512 (),
879 (__mmask8) __U);
880}
881
882extern __inline __m512i
883__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
884_mm512_add_epi32 (__m512i __A, __m512i __B)
885{
886 return (__m512i) ((__v16su) __A + (__v16su) __B);
887}
888
889extern __inline __m512i
890__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
891_mm512_mask_add_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
892{
893 return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
894 (__v16si) __B,
895 (__v16si) __W,
896 (__mmask16) __U);
897}
898
899extern __inline __m512i
900__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
901_mm512_maskz_add_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
902{
903 return (__m512i) __builtin_ia32_paddd512_mask ((__v16si) __A,
904 (__v16si) __B,
905 (__v16si)
906 _mm512_setzero_si512 (),
907 (__mmask16) __U);
908}
909
910extern __inline __m512i
911__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
912_mm512_mul_epi32 (__m512i __X, __m512i __Y)
913{
914 return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
915 (__v16si) __Y,
916 (__v8di)
917 _mm512_undefined_epi32 (),
918 (__mmask8) -1);
919}
920
921extern __inline __m512i
922__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
923_mm512_mask_mul_epi32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
924{
925 return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
926 (__v16si) __Y,
927 (__v8di) __W, __M);
928}
929
930extern __inline __m512i
931__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
932_mm512_maskz_mul_epi32 (__mmask8 __M, __m512i __X, __m512i __Y)
933{
934 return (__m512i) __builtin_ia32_pmuldq512_mask ((__v16si) __X,
935 (__v16si) __Y,
936 (__v8di)
937 _mm512_setzero_si512 (),
938 __M);
939}
940
941extern __inline __m512i
942__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
943_mm512_sub_epi32 (__m512i __A, __m512i __B)
944{
945 return (__m512i) ((__v16su) __A - (__v16su) __B);
946}
947
948extern __inline __m512i
949__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
950_mm512_mask_sub_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
951{
952 return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
953 (__v16si) __B,
954 (__v16si) __W,
955 (__mmask16) __U);
956}
957
958extern __inline __m512i
959__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
960_mm512_maskz_sub_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
961{
962 return (__m512i) __builtin_ia32_psubd512_mask ((__v16si) __A,
963 (__v16si) __B,
964 (__v16si)
965 _mm512_setzero_si512 (),
966 (__mmask16) __U);
967}
968
969extern __inline __m512i
970__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
971_mm512_mul_epu32 (__m512i __X, __m512i __Y)
972{
973 return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
974 (__v16si) __Y,
975 (__v8di)
976 _mm512_undefined_epi32 (),
977 (__mmask8) -1);
978}
979
980extern __inline __m512i
981__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
982_mm512_mask_mul_epu32 (__m512i __W, __mmask8 __M, __m512i __X, __m512i __Y)
983{
984 return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
985 (__v16si) __Y,
986 (__v8di) __W, __M);
987}
988
989extern __inline __m512i
990__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
991_mm512_maskz_mul_epu32 (__mmask8 __M, __m512i __X, __m512i __Y)
992{
993 return (__m512i) __builtin_ia32_pmuludq512_mask ((__v16si) __X,
994 (__v16si) __Y,
995 (__v8di)
996 _mm512_setzero_si512 (),
997 __M);
998}
999
1000#ifdef __OPTIMIZE__
1001extern __inline __m512i
1002__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1003_mm512_slli_epi64 (__m512i __A, unsigned int __B)
1004{
1005 return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1006 (__v8di)
1007 _mm512_undefined_epi32 (),
1008 (__mmask8) -1);
1009}
1010
1011extern __inline __m512i
1012__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1013_mm512_mask_slli_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
1014 unsigned int __B)
1015{
1016 return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1017 (__v8di) __W,
1018 (__mmask8) __U);
1019}
1020
1021extern __inline __m512i
1022__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1023_mm512_maskz_slli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1024{
1025 return (__m512i) __builtin_ia32_psllqi512_mask ((__v8di) __A, __B,
1026 (__v8di)
1027 _mm512_setzero_si512 (),
1028 (__mmask8) __U);
1029}
1030#else
1031#define _mm512_slli_epi64(X, C) \
1032 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1033 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1034 (__mmask8)-1))
1035
1036#define _mm512_mask_slli_epi64(W, U, X, C) \
1037 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1038 (__v8di)(__m512i)(W),\
1039 (__mmask8)(U)))
1040
1041#define _mm512_maskz_slli_epi64(U, X, C) \
1042 ((__m512i) __builtin_ia32_psllqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1043 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1044 (__mmask8)(U)))
1045#endif
1046
1047extern __inline __m512i
1048__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1049_mm512_sll_epi64 (__m512i __A, __m128i __B)
1050{
1051 return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1052 (__v2di) __B,
1053 (__v8di)
1054 _mm512_undefined_epi32 (),
1055 (__mmask8) -1);
1056}
1057
1058extern __inline __m512i
1059__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1060_mm512_mask_sll_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1061{
1062 return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1063 (__v2di) __B,
1064 (__v8di) __W,
1065 (__mmask8) __U);
1066}
1067
1068extern __inline __m512i
1069__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1070_mm512_maskz_sll_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1071{
1072 return (__m512i) __builtin_ia32_psllq512_mask ((__v8di) __A,
1073 (__v2di) __B,
1074 (__v8di)
1075 _mm512_setzero_si512 (),
1076 (__mmask8) __U);
1077}
1078
1079#ifdef __OPTIMIZE__
1080extern __inline __m512i
1081__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1082_mm512_srli_epi64 (__m512i __A, unsigned int __B)
1083{
1084 return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1085 (__v8di)
1086 _mm512_undefined_epi32 (),
1087 (__mmask8) -1);
1088}
1089
1090extern __inline __m512i
1091__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1093 __m512i __A, unsigned int __B)
1094{
1095 return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1096 (__v8di) __W,
1097 (__mmask8) __U);
1098}
1099
1100extern __inline __m512i
1101__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1102_mm512_maskz_srli_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1103{
1104 return (__m512i) __builtin_ia32_psrlqi512_mask ((__v8di) __A, __B,
1105 (__v8di)
1106 _mm512_setzero_si512 (),
1107 (__mmask8) __U);
1108}
1109#else
1110#define _mm512_srli_epi64(X, C) \
1111 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1112 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1113 (__mmask8)-1))
1114
1115#define _mm512_mask_srli_epi64(W, U, X, C) \
1116 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1117 (__v8di)(__m512i)(W),\
1118 (__mmask8)(U)))
1119
1120#define _mm512_maskz_srli_epi64(U, X, C) \
1121 ((__m512i) __builtin_ia32_psrlqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1122 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1123 (__mmask8)(U)))
1124#endif
1125
1126extern __inline __m512i
1127__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1128_mm512_srl_epi64 (__m512i __A, __m128i __B)
1129{
1130 return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1131 (__v2di) __B,
1132 (__v8di)
1133 _mm512_undefined_epi32 (),
1134 (__mmask8) -1);
1135}
1136
1137extern __inline __m512i
1138__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1139_mm512_mask_srl_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1140{
1141 return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1142 (__v2di) __B,
1143 (__v8di) __W,
1144 (__mmask8) __U);
1145}
1146
1147extern __inline __m512i
1148__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1149_mm512_maskz_srl_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1150{
1151 return (__m512i) __builtin_ia32_psrlq512_mask ((__v8di) __A,
1152 (__v2di) __B,
1153 (__v8di)
1154 _mm512_setzero_si512 (),
1155 (__mmask8) __U);
1156}
1157
1158#ifdef __OPTIMIZE__
1159extern __inline __m512i
1160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1161_mm512_srai_epi64 (__m512i __A, unsigned int __B)
1162{
1163 return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1164 (__v8di)
1165 _mm512_undefined_epi32 (),
1166 (__mmask8) -1);
1167}
1168
1169extern __inline __m512i
1170__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1171_mm512_mask_srai_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
1172 unsigned int __B)
1173{
1174 return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1175 (__v8di) __W,
1176 (__mmask8) __U);
1177}
1178
1179extern __inline __m512i
1180__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1181_mm512_maskz_srai_epi64 (__mmask8 __U, __m512i __A, unsigned int __B)
1182{
1183 return (__m512i) __builtin_ia32_psraqi512_mask ((__v8di) __A, __B,
1184 (__v8di)
1185 _mm512_setzero_si512 (),
1186 (__mmask8) __U);
1187}
1188#else
1189#define _mm512_srai_epi64(X, C) \
1190 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1191 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
1192 (__mmask8)-1))
1193
1194#define _mm512_mask_srai_epi64(W, U, X, C) \
1195 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1196 (__v8di)(__m512i)(W),\
1197 (__mmask8)(U)))
1198
1199#define _mm512_maskz_srai_epi64(U, X, C) \
1200 ((__m512i) __builtin_ia32_psraqi512_mask ((__v8di)(__m512i)(X), (int)(C),\
1201 (__v8di)(__m512i)_mm512_setzero_si512 (),\
1202 (__mmask8)(U)))
1203#endif
1204
1205extern __inline __m512i
1206__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1207_mm512_sra_epi64 (__m512i __A, __m128i __B)
1208{
1209 return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1210 (__v2di) __B,
1211 (__v8di)
1212 _mm512_undefined_epi32 (),
1213 (__mmask8) -1);
1214}
1215
1216extern __inline __m512i
1217__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1218_mm512_mask_sra_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m128i __B)
1219{
1220 return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1221 (__v2di) __B,
1222 (__v8di) __W,
1223 (__mmask8) __U);
1224}
1225
1226extern __inline __m512i
1227__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1228_mm512_maskz_sra_epi64 (__mmask8 __U, __m512i __A, __m128i __B)
1229{
1230 return (__m512i) __builtin_ia32_psraq512_mask ((__v8di) __A,
1231 (__v2di) __B,
1232 (__v8di)
1233 _mm512_setzero_si512 (),
1234 (__mmask8) __U);
1235}
1236
1237#ifdef __OPTIMIZE__
1238extern __inline __m512i
1239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1240_mm512_slli_epi32 (__m512i __A, unsigned int __B)
1241{
1242 return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1243 (__v16si)
1244 _mm512_undefined_epi32 (),
1245 (__mmask16) -1);
1246}
1247
1248extern __inline __m512i
1249__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1250_mm512_mask_slli_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
1251 unsigned int __B)
1252{
1253 return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1254 (__v16si) __W,
1255 (__mmask16) __U);
1256}
1257
1258extern __inline __m512i
1259__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1260_mm512_maskz_slli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1261{
1262 return (__m512i) __builtin_ia32_pslldi512_mask ((__v16si) __A, __B,
1263 (__v16si)
1264 _mm512_setzero_si512 (),
1265 (__mmask16) __U);
1266}
1267#else
1268#define _mm512_slli_epi32(X, C) \
1269 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1270 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1271 (__mmask16)-1))
1272
1273#define _mm512_mask_slli_epi32(W, U, X, C) \
1274 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1275 (__v16si)(__m512i)(W),\
1276 (__mmask16)(U)))
1277
1278#define _mm512_maskz_slli_epi32(U, X, C) \
1279 ((__m512i) __builtin_ia32_pslldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1280 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1281 (__mmask16)(U)))
1282#endif
1283
1284extern __inline __m512i
1285__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1286_mm512_sll_epi32 (__m512i __A, __m128i __B)
1287{
1288 return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1289 (__v4si) __B,
1290 (__v16si)
1291 _mm512_undefined_epi32 (),
1292 (__mmask16) -1);
1293}
1294
1295extern __inline __m512i
1296__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1297_mm512_mask_sll_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1298{
1299 return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1300 (__v4si) __B,
1301 (__v16si) __W,
1302 (__mmask16) __U);
1303}
1304
1305extern __inline __m512i
1306__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1307_mm512_maskz_sll_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1308{
1309 return (__m512i) __builtin_ia32_pslld512_mask ((__v16si) __A,
1310 (__v4si) __B,
1311 (__v16si)
1312 _mm512_setzero_si512 (),
1313 (__mmask16) __U);
1314}
1315
1316#ifdef __OPTIMIZE__
1317extern __inline __m512i
1318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1319_mm512_srli_epi32 (__m512i __A, unsigned int __B)
1320{
1321 return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1322 (__v16si)
1323 _mm512_undefined_epi32 (),
1324 (__mmask16) -1);
1325}
1326
1327extern __inline __m512i
1328__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1330 __m512i __A, unsigned int __B)
1331{
1332 return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1333 (__v16si) __W,
1334 (__mmask16) __U);
1335}
1336
1337extern __inline __m512i
1338__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1339_mm512_maskz_srli_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1340{
1341 return (__m512i) __builtin_ia32_psrldi512_mask ((__v16si) __A, __B,
1342 (__v16si)
1343 _mm512_setzero_si512 (),
1344 (__mmask16) __U);
1345}
1346#else
1347#define _mm512_srli_epi32(X, C) \
1348 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1349 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1350 (__mmask16)-1))
1351
1352#define _mm512_mask_srli_epi32(W, U, X, C) \
1353 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1354 (__v16si)(__m512i)(W),\
1355 (__mmask16)(U)))
1356
1357#define _mm512_maskz_srli_epi32(U, X, C) \
1358 ((__m512i) __builtin_ia32_psrldi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1359 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1360 (__mmask16)(U)))
1361#endif
1362
1363extern __inline __m512i
1364__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1365_mm512_srl_epi32 (__m512i __A, __m128i __B)
1366{
1367 return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1368 (__v4si) __B,
1369 (__v16si)
1370 _mm512_undefined_epi32 (),
1371 (__mmask16) -1);
1372}
1373
1374extern __inline __m512i
1375__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1376_mm512_mask_srl_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1377{
1378 return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1379 (__v4si) __B,
1380 (__v16si) __W,
1381 (__mmask16) __U);
1382}
1383
1384extern __inline __m512i
1385__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1386_mm512_maskz_srl_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1387{
1388 return (__m512i) __builtin_ia32_psrld512_mask ((__v16si) __A,
1389 (__v4si) __B,
1390 (__v16si)
1391 _mm512_setzero_si512 (),
1392 (__mmask16) __U);
1393}
1394
1395#ifdef __OPTIMIZE__
1396extern __inline __m512i
1397__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1398_mm512_srai_epi32 (__m512i __A, unsigned int __B)
1399{
1400 return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1401 (__v16si)
1402 _mm512_undefined_epi32 (),
1403 (__mmask16) -1);
1404}
1405
1406extern __inline __m512i
1407__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1408_mm512_mask_srai_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
1409 unsigned int __B)
1410{
1411 return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1412 (__v16si) __W,
1413 (__mmask16) __U);
1414}
1415
1416extern __inline __m512i
1417__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1418_mm512_maskz_srai_epi32 (__mmask16 __U, __m512i __A, unsigned int __B)
1419{
1420 return (__m512i) __builtin_ia32_psradi512_mask ((__v16si) __A, __B,
1421 (__v16si)
1422 _mm512_setzero_si512 (),
1423 (__mmask16) __U);
1424}
1425#else
1426#define _mm512_srai_epi32(X, C) \
1427 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1428 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
1429 (__mmask16)-1))
1430
1431#define _mm512_mask_srai_epi32(W, U, X, C) \
1432 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1433 (__v16si)(__m512i)(W),\
1434 (__mmask16)(U)))
1435
1436#define _mm512_maskz_srai_epi32(U, X, C) \
1437 ((__m512i) __builtin_ia32_psradi512_mask ((__v16si)(__m512i)(X), (int)(C),\
1438 (__v16si)(__m512i)_mm512_setzero_si512 (),\
1439 (__mmask16)(U)))
1440#endif
1441
1442extern __inline __m512i
1443__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1444_mm512_sra_epi32 (__m512i __A, __m128i __B)
1445{
1446 return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1447 (__v4si) __B,
1448 (__v16si)
1449 _mm512_undefined_epi32 (),
1450 (__mmask16) -1);
1451}
1452
1453extern __inline __m512i
1454__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1455_mm512_mask_sra_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m128i __B)
1456{
1457 return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1458 (__v4si) __B,
1459 (__v16si) __W,
1460 (__mmask16) __U);
1461}
1462
1463extern __inline __m512i
1464__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1465_mm512_maskz_sra_epi32 (__mmask16 __U, __m512i __A, __m128i __B)
1466{
1467 return (__m512i) __builtin_ia32_psrad512_mask ((__v16si) __A,
1468 (__v4si) __B,
1469 (__v16si)
1470 _mm512_setzero_si512 (),
1471 (__mmask16) __U);
1472}
1473
1474#ifdef __OPTIMIZE__
1475extern __inline __m128d
1476__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1477_mm_add_round_sd (__m128d __A, __m128d __B, const int __R)
1478{
1479 return (__m128d) __builtin_ia32_addsd_round ((__v2df) __A,
1480 (__v2df) __B,
1481 __R);
1482}
1483
1484extern __inline __m128d
1485__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1486_mm_mask_add_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
1487 __m128d __B, const int __R)
1488{
1489 return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
1490 (__v2df) __B,
1491 (__v2df) __W,
1492 (__mmask8) __U, __R);
1493}
1494
1495extern __inline __m128d
1496__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1497_mm_maskz_add_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
1498 const int __R)
1499{
1500 return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
1501 (__v2df) __B,
1502 (__v2df)
1503 _mm_setzero_pd (),
1504 (__mmask8) __U, __R);
1505}
1506
1507extern __inline __m128
1508__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1509_mm_add_round_ss (__m128 __A, __m128 __B, const int __R)
1510{
1511 return (__m128) __builtin_ia32_addss_round ((__v4sf) __A,
1512 (__v4sf) __B,
1513 __R);
1514}
1515
1516extern __inline __m128
1517__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1518_mm_mask_add_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
1519 __m128 __B, const int __R)
1520{
1521 return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
1522 (__v4sf) __B,
1523 (__v4sf) __W,
1524 (__mmask8) __U, __R);
1525}
1526
1527extern __inline __m128
1528__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1529_mm_maskz_add_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
1530 const int __R)
1531{
1532 return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
1533 (__v4sf) __B,
1534 (__v4sf)
1535 _mm_setzero_ps (),
1536 (__mmask8) __U, __R);
1537}
1538
1539extern __inline __m128d
1540__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1541_mm_sub_round_sd (__m128d __A, __m128d __B, const int __R)
1542{
1543 return (__m128d) __builtin_ia32_subsd_round ((__v2df) __A,
1544 (__v2df) __B,
1545 __R);
1546}
1547
1548extern __inline __m128d
1549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1550_mm_mask_sub_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
1551 __m128d __B, const int __R)
1552{
1553 return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
1554 (__v2df) __B,
1555 (__v2df) __W,
1556 (__mmask8) __U, __R);
1557}
1558
1559extern __inline __m128d
1560__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1561_mm_maskz_sub_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
1562 const int __R)
1563{
1564 return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
1565 (__v2df) __B,
1566 (__v2df)
1567 _mm_setzero_pd (),
1568 (__mmask8) __U, __R);
1569}
1570
1571extern __inline __m128
1572__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1573_mm_sub_round_ss (__m128 __A, __m128 __B, const int __R)
1574{
1575 return (__m128) __builtin_ia32_subss_round ((__v4sf) __A,
1576 (__v4sf) __B,
1577 __R);
1578}
1579
1580extern __inline __m128
1581__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1582_mm_mask_sub_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
1583 __m128 __B, const int __R)
1584{
1585 return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
1586 (__v4sf) __B,
1587 (__v4sf) __W,
1588 (__mmask8) __U, __R);
1589}
1590
1591extern __inline __m128
1592__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1593_mm_maskz_sub_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
1594 const int __R)
1595{
1596 return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
1597 (__v4sf) __B,
1598 (__v4sf)
1599 _mm_setzero_ps (),
1600 (__mmask8) __U, __R);
1601}
1602
1603#else
1604#define _mm_add_round_sd(A, B, C) \
1605 (__m128d)__builtin_ia32_addsd_round(A, B, C)
1606
1607#define _mm_mask_add_round_sd(W, U, A, B, C) \
1608 (__m128d)__builtin_ia32_addsd_mask_round(A, B, W, U, C)
1609
1610#define _mm_maskz_add_round_sd(U, A, B, C) \
1611 (__m128d)__builtin_ia32_addsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1612
1613#define _mm_add_round_ss(A, B, C) \
1614 (__m128)__builtin_ia32_addss_round(A, B, C)
1615
1616#define _mm_mask_add_round_ss(W, U, A, B, C) \
1617 (__m128)__builtin_ia32_addss_mask_round(A, B, W, U, C)
1618
1619#define _mm_maskz_add_round_ss(U, A, B, C) \
1620 (__m128)__builtin_ia32_addss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1621
1622#define _mm_sub_round_sd(A, B, C) \
1623 (__m128d)__builtin_ia32_subsd_round(A, B, C)
1624
1625#define _mm_mask_sub_round_sd(W, U, A, B, C) \
1626 (__m128d)__builtin_ia32_subsd_mask_round(A, B, W, U, C)
1627
1628#define _mm_maskz_sub_round_sd(U, A, B, C) \
1629 (__m128d)__builtin_ia32_subsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
1630
1631#define _mm_sub_round_ss(A, B, C) \
1632 (__m128)__builtin_ia32_subss_round(A, B, C)
1633
1634#define _mm_mask_sub_round_ss(W, U, A, B, C) \
1635 (__m128)__builtin_ia32_subss_mask_round(A, B, W, U, C)
1636
1637#define _mm_maskz_sub_round_ss(U, A, B, C) \
1638 (__m128)__builtin_ia32_subss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
1639
1640#endif
1641
1642/* Constant helper to represent the ternary logic operations among
1643 vector A, B and C. */
1644typedef enum
1645{
1648 _MM_TERNLOG_C = 0xAA
1650
1651#ifdef __OPTIMIZE__
1652extern __inline __m512i
1653__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1654_mm512_ternarylogic_epi64 (__m512i __A, __m512i __B, __m512i __C,
1655 const int __imm)
1656{
1657 return (__m512i)
1658 __builtin_ia32_pternlogq512_mask ((__v8di) __A,
1659 (__v8di) __B,
1660 (__v8di) __C,
1661 (unsigned char) __imm,
1662 (__mmask8) -1);
1663}
1664
1665extern __inline __m512i
1666__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1668 __m512i __C, const int __imm)
1669{
1670 return (__m512i)
1671 __builtin_ia32_pternlogq512_mask ((__v8di) __A,
1672 (__v8di) __B,
1673 (__v8di) __C,
1674 (unsigned char) __imm,
1675 (__mmask8) __U);
1676}
1677
1678extern __inline __m512i
1679__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1681 __m512i __C, const int __imm)
1682{
1683 return (__m512i)
1684 __builtin_ia32_pternlogq512_maskz ((__v8di) __A,
1685 (__v8di) __B,
1686 (__v8di) __C,
1687 (unsigned char) __imm,
1688 (__mmask8) __U);
1689}
1690
1691extern __inline __m512i
1692__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1693_mm512_ternarylogic_epi32 (__m512i __A, __m512i __B, __m512i __C,
1694 const int __imm)
1695{
1696 return (__m512i)
1697 __builtin_ia32_pternlogd512_mask ((__v16si) __A,
1698 (__v16si) __B,
1699 (__v16si) __C,
1700 (unsigned char) __imm,
1701 (__mmask16) -1);
1702}
1703
1704extern __inline __m512i
1705__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1707 __m512i __C, const int __imm)
1708{
1709 return (__m512i)
1710 __builtin_ia32_pternlogd512_mask ((__v16si) __A,
1711 (__v16si) __B,
1712 (__v16si) __C,
1713 (unsigned char) __imm,
1714 (__mmask16) __U);
1715}
1716
1717extern __inline __m512i
1718__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1720 __m512i __C, const int __imm)
1721{
1722 return (__m512i)
1723 __builtin_ia32_pternlogd512_maskz ((__v16si) __A,
1724 (__v16si) __B,
1725 (__v16si) __C,
1726 (unsigned char) __imm,
1727 (__mmask16) __U);
1728}
1729#else
1730#define _mm512_ternarylogic_epi64(A, B, C, I) \
1731 ((__m512i) \
1732 __builtin_ia32_pternlogq512_mask ((__v8di) (__m512i) (A), \
1733 (__v8di) (__m512i) (B), \
1734 (__v8di) (__m512i) (C), \
1735 (unsigned char) (I), \
1736 (__mmask8) -1))
1737#define _mm512_mask_ternarylogic_epi64(A, U, B, C, I) \
1738 ((__m512i) \
1739 __builtin_ia32_pternlogq512_mask ((__v8di) (__m512i) (A), \
1740 (__v8di) (__m512i) (B), \
1741 (__v8di) (__m512i) (C), \
1742 (unsigned char)(I), \
1743 (__mmask8) (U)))
1744#define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I) \
1745 ((__m512i) \
1746 __builtin_ia32_pternlogq512_maskz ((__v8di) (__m512i) (A), \
1747 (__v8di) (__m512i) (B), \
1748 (__v8di) (__m512i) (C), \
1749 (unsigned char) (I), \
1750 (__mmask8) (U)))
1751#define _mm512_ternarylogic_epi32(A, B, C, I) \
1752 ((__m512i) \
1753 __builtin_ia32_pternlogd512_mask ((__v16si) (__m512i) (A), \
1754 (__v16si) (__m512i) (B), \
1755 (__v16si) (__m512i) (C), \
1756 (unsigned char) (I), \
1757 (__mmask16) -1))
1758#define _mm512_mask_ternarylogic_epi32(A, U, B, C, I) \
1759 ((__m512i) \
1760 __builtin_ia32_pternlogd512_mask ((__v16si) (__m512i) (A), \
1761 (__v16si) (__m512i) (B), \
1762 (__v16si) (__m512i) (C), \
1763 (unsigned char) (I), \
1764 (__mmask16) (U)))
1765#define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I) \
1766 ((__m512i) \
1767 __builtin_ia32_pternlogd512_maskz ((__v16si) (__m512i) (A), \
1768 (__v16si) (__m512i) (B), \
1769 (__v16si) (__m512i) (C), \
1770 (unsigned char) (I), \
1771 (__mmask16) (U)))
1772#endif
1773
1774extern __inline __m512d
1775__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1776_mm512_rcp14_pd (__m512d __A)
1777{
1778 return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1779 (__v8df)
1780 _mm512_undefined_pd (),
1781 (__mmask8) -1);
1782}
1783
1784extern __inline __m512d
1785__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1786_mm512_mask_rcp14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1787{
1788 return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1789 (__v8df) __W,
1790 (__mmask8) __U);
1791}
1792
1793extern __inline __m512d
1794__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1795_mm512_maskz_rcp14_pd (__mmask8 __U, __m512d __A)
1796{
1797 return (__m512d) __builtin_ia32_rcp14pd512_mask ((__v8df) __A,
1798 (__v8df)
1799 _mm512_setzero_pd (),
1800 (__mmask8) __U);
1801}
1802
1803extern __inline __m512
1804__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1805_mm512_rcp14_ps (__m512 __A)
1806{
1807 return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1808 (__v16sf)
1809 _mm512_undefined_ps (),
1810 (__mmask16) -1);
1811}
1812
1813extern __inline __m512
1814__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1815_mm512_mask_rcp14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1816{
1817 return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1818 (__v16sf) __W,
1819 (__mmask16) __U);
1820}
1821
1822extern __inline __m512
1823__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1824_mm512_maskz_rcp14_ps (__mmask16 __U, __m512 __A)
1825{
1826 return (__m512) __builtin_ia32_rcp14ps512_mask ((__v16sf) __A,
1827 (__v16sf)
1828 _mm512_setzero_ps (),
1829 (__mmask16) __U);
1830}
1831
1832extern __inline __m128d
1833__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1834_mm_rcp14_sd (__m128d __A, __m128d __B)
1835{
1836 return (__m128d) __builtin_ia32_rcp14sd ((__v2df) __B,
1837 (__v2df) __A);
1838}
1839
1840extern __inline __m128d
1841__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1842_mm_mask_rcp14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1843{
1844 return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
1845 (__v2df) __A,
1846 (__v2df) __W,
1847 (__mmask8) __U);
1848}
1849
1850extern __inline __m128d
1851__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1852_mm_maskz_rcp14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1853{
1854 return (__m128d) __builtin_ia32_rcp14sd_mask ((__v2df) __B,
1855 (__v2df) __A,
1856 (__v2df) _mm_setzero_ps (),
1857 (__mmask8) __U);
1858}
1859
1860extern __inline __m128
1861__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1862_mm_rcp14_ss (__m128 __A, __m128 __B)
1863{
1864 return (__m128) __builtin_ia32_rcp14ss ((__v4sf) __B,
1865 (__v4sf) __A);
1866}
1867
1868extern __inline __m128
1869__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1870_mm_mask_rcp14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1871{
1872 return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
1873 (__v4sf) __A,
1874 (__v4sf) __W,
1875 (__mmask8) __U);
1876}
1877
1878extern __inline __m128
1879__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1880_mm_maskz_rcp14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1881{
1882 return (__m128) __builtin_ia32_rcp14ss_mask ((__v4sf) __B,
1883 (__v4sf) __A,
1884 (__v4sf) _mm_setzero_ps (),
1885 (__mmask8) __U);
1886}
1887
1888extern __inline __m512d
1889__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1890_mm512_rsqrt14_pd (__m512d __A)
1891{
1892 return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1893 (__v8df)
1894 _mm512_undefined_pd (),
1895 (__mmask8) -1);
1896}
1897
1898extern __inline __m512d
1899__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1900_mm512_mask_rsqrt14_pd (__m512d __W, __mmask8 __U, __m512d __A)
1901{
1902 return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1903 (__v8df) __W,
1904 (__mmask8) __U);
1905}
1906
1907extern __inline __m512d
1908__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1909_mm512_maskz_rsqrt14_pd (__mmask8 __U, __m512d __A)
1910{
1911 return (__m512d) __builtin_ia32_rsqrt14pd512_mask ((__v8df) __A,
1912 (__v8df)
1913 _mm512_setzero_pd (),
1914 (__mmask8) __U);
1915}
1916
1917extern __inline __m512
1918__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1919_mm512_rsqrt14_ps (__m512 __A)
1920{
1921 return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1922 (__v16sf)
1923 _mm512_undefined_ps (),
1924 (__mmask16) -1);
1925}
1926
1927extern __inline __m512
1928__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1929_mm512_mask_rsqrt14_ps (__m512 __W, __mmask16 __U, __m512 __A)
1930{
1931 return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1932 (__v16sf) __W,
1933 (__mmask16) __U);
1934}
1935
1936extern __inline __m512
1937__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1938_mm512_maskz_rsqrt14_ps (__mmask16 __U, __m512 __A)
1939{
1940 return (__m512) __builtin_ia32_rsqrt14ps512_mask ((__v16sf) __A,
1941 (__v16sf)
1942 _mm512_setzero_ps (),
1943 (__mmask16) __U);
1944}
1945
1946extern __inline __m128d
1947__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1948_mm_rsqrt14_sd (__m128d __A, __m128d __B)
1949{
1950 return (__m128d) __builtin_ia32_rsqrt14sd ((__v2df) __B,
1951 (__v2df) __A);
1952}
1953
1954extern __inline __m128d
1955__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1956_mm_mask_rsqrt14_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
1957{
1958 return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
1959 (__v2df) __A,
1960 (__v2df) __W,
1961 (__mmask8) __U);
1962}
1963
1964extern __inline __m128d
1965__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1966_mm_maskz_rsqrt14_sd (__mmask8 __U, __m128d __A, __m128d __B)
1967{
1968 return (__m128d) __builtin_ia32_rsqrt14sd_mask ((__v2df) __B,
1969 (__v2df) __A,
1970 (__v2df) _mm_setzero_pd (),
1971 (__mmask8) __U);
1972}
1973
1974extern __inline __m128
1975__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1976_mm_rsqrt14_ss (__m128 __A, __m128 __B)
1977{
1978 return (__m128) __builtin_ia32_rsqrt14ss ((__v4sf) __B,
1979 (__v4sf) __A);
1980}
1981
1982extern __inline __m128
1983__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1984_mm_mask_rsqrt14_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
1985{
1986 return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
1987 (__v4sf) __A,
1988 (__v4sf) __W,
1989 (__mmask8) __U);
1990}
1991
1992extern __inline __m128
1993__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
1994_mm_maskz_rsqrt14_ss (__mmask8 __U, __m128 __A, __m128 __B)
1995{
1996 return (__m128) __builtin_ia32_rsqrt14ss_mask ((__v4sf) __B,
1997 (__v4sf) __A,
1998 (__v4sf) _mm_setzero_ps (),
1999 (__mmask8) __U);
2000}
2001
2002#ifdef __OPTIMIZE__
2003extern __inline __m512d
2004__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2005_mm512_sqrt_round_pd (__m512d __A, const int __R)
2006{
2007 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
2008 (__v8df)
2009 _mm512_undefined_pd (),
2010 (__mmask8) -1, __R);
2011}
2012
2013extern __inline __m512d
2014__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2015_mm512_mask_sqrt_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2016 const int __R)
2017{
2018 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
2019 (__v8df) __W,
2020 (__mmask8) __U, __R);
2021}
2022
2023extern __inline __m512d
2024__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2025_mm512_maskz_sqrt_round_pd (__mmask8 __U, __m512d __A, const int __R)
2026{
2027 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
2028 (__v8df)
2029 _mm512_setzero_pd (),
2030 (__mmask8) __U, __R);
2031}
2032
2033extern __inline __m512
2034__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2035_mm512_sqrt_round_ps (__m512 __A, const int __R)
2036{
2037 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2038 (__v16sf)
2039 _mm512_undefined_ps (),
2040 (__mmask16) -1, __R);
2041}
2042
2043extern __inline __m512
2044__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2045_mm512_mask_sqrt_round_ps (__m512 __W, __mmask16 __U, __m512 __A, const int __R)
2046{
2047 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2048 (__v16sf) __W,
2049 (__mmask16) __U, __R);
2050}
2051
2052extern __inline __m512
2053__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2054_mm512_maskz_sqrt_round_ps (__mmask16 __U, __m512 __A, const int __R)
2055{
2056 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
2057 (__v16sf)
2058 _mm512_setzero_ps (),
2059 (__mmask16) __U, __R);
2060}
2061
2062extern __inline __m128d
2063__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2064_mm_sqrt_round_sd (__m128d __A, __m128d __B, const int __R)
2065{
2066 return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2067 (__v2df) __A,
2068 (__v2df)
2069 _mm_setzero_pd (),
2070 (__mmask8) -1, __R);
2071}
2072
2073extern __inline __m128d
2074__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2075_mm_mask_sqrt_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
2076 const int __R)
2077{
2078 return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2079 (__v2df) __A,
2080 (__v2df) __W,
2081 (__mmask8) __U, __R);
2082}
2083
2084extern __inline __m128d
2085__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2086_mm_maskz_sqrt_round_sd (__mmask8 __U, __m128d __A, __m128d __B, const int __R)
2087{
2088 return (__m128d) __builtin_ia32_sqrtsd_mask_round ((__v2df) __B,
2089 (__v2df) __A,
2090 (__v2df)
2091 _mm_setzero_pd (),
2092 (__mmask8) __U, __R);
2093}
2094
2095extern __inline __m128
2096__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2097_mm_sqrt_round_ss (__m128 __A, __m128 __B, const int __R)
2098{
2099 return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2100 (__v4sf) __A,
2101 (__v4sf)
2102 _mm_setzero_ps (),
2103 (__mmask8) -1, __R);
2104}
2105
2106extern __inline __m128
2107__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2108_mm_mask_sqrt_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
2109 const int __R)
2110{
2111 return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2112 (__v4sf) __A,
2113 (__v4sf) __W,
2114 (__mmask8) __U, __R);
2115}
2116
2117extern __inline __m128
2118__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2119_mm_maskz_sqrt_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
2120{
2121 return (__m128) __builtin_ia32_sqrtss_mask_round ((__v4sf) __B,
2122 (__v4sf) __A,
2123 (__v4sf)
2124 _mm_setzero_ps (),
2125 (__mmask8) __U, __R);
2126}
2127#else
2128#define _mm512_sqrt_round_pd(A, C) \
2129 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, C)
2130
2131#define _mm512_mask_sqrt_round_pd(W, U, A, C) \
2132 (__m512d)__builtin_ia32_sqrtpd512_mask(A, W, U, C)
2133
2134#define _mm512_maskz_sqrt_round_pd(U, A, C) \
2135 (__m512d)__builtin_ia32_sqrtpd512_mask(A, (__v8df)_mm512_setzero_pd(), U, C)
2136
2137#define _mm512_sqrt_round_ps(A, C) \
2138 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_undefined_ps(), -1, C)
2139
2140#define _mm512_mask_sqrt_round_ps(W, U, A, C) \
2141 (__m512)__builtin_ia32_sqrtps512_mask(A, W, U, C)
2142
2143#define _mm512_maskz_sqrt_round_ps(U, A, C) \
2144 (__m512)__builtin_ia32_sqrtps512_mask(A, (__v16sf)_mm512_setzero_ps(), U, C)
2145
2146#define _mm_sqrt_round_sd(A, B, C) \
2147 (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
2148 (__v2df) _mm_setzero_pd (), -1, C)
2149
2150#define _mm_mask_sqrt_round_sd(W, U, A, B, C) \
2151 (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, W, U, C)
2152
2153#define _mm_maskz_sqrt_round_sd(U, A, B, C) \
2154 (__m128d)__builtin_ia32_sqrtsd_mask_round (B, A, \
2155 (__v2df) _mm_setzero_pd (), U, C)
2156
2157#define _mm_sqrt_round_ss(A, B, C) \
2158 (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
2159 (__v4sf) _mm_setzero_ps (), -1, C)
2160
2161#define _mm_mask_sqrt_round_ss(W, U, A, B, C) \
2162 (__m128)__builtin_ia32_sqrtss_mask_round (B, A, W, U, C)
2163
2164#define _mm_maskz_sqrt_round_ss(U, A, B, C) \
2165 (__m128)__builtin_ia32_sqrtss_mask_round (B, A, \
2166 (__v4sf) _mm_setzero_ps (), U, C)
2167#endif
2168
2169#define _mm_mask_sqrt_sd(W, U, A, B) \
2170 _mm_mask_sqrt_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
2171
2172#define _mm_maskz_sqrt_sd(U, A, B) \
2173 _mm_maskz_sqrt_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
2174
2175#define _mm_mask_sqrt_ss(W, U, A, B) \
2176 _mm_mask_sqrt_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
2177
2178#define _mm_maskz_sqrt_ss(U, A, B) \
2179 _mm_maskz_sqrt_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
2180
2181extern __inline __m512i
2182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2183_mm512_cvtepi8_epi32 (__m128i __A)
2184{
2185 return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2186 (__v16si)
2187 _mm512_undefined_epi32 (),
2188 (__mmask16) -1);
2189}
2190
2191extern __inline __m512i
2192__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2193_mm512_mask_cvtepi8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
2194{
2195 return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2196 (__v16si) __W,
2197 (__mmask16) __U);
2198}
2199
2200extern __inline __m512i
2201__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2202_mm512_maskz_cvtepi8_epi32 (__mmask16 __U, __m128i __A)
2203{
2204 return (__m512i) __builtin_ia32_pmovsxbd512_mask ((__v16qi) __A,
2205 (__v16si)
2206 _mm512_setzero_si512 (),
2207 (__mmask16) __U);
2208}
2209
2210extern __inline __m512i
2211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2212_mm512_cvtepi8_epi64 (__m128i __A)
2213{
2214 return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2215 (__v8di)
2216 _mm512_undefined_epi32 (),
2217 (__mmask8) -1);
2218}
2219
2220extern __inline __m512i
2221__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2222_mm512_mask_cvtepi8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2223{
2224 return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2225 (__v8di) __W,
2226 (__mmask8) __U);
2227}
2228
2229extern __inline __m512i
2230__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2231_mm512_maskz_cvtepi8_epi64 (__mmask8 __U, __m128i __A)
2232{
2233 return (__m512i) __builtin_ia32_pmovsxbq512_mask ((__v16qi) __A,
2234 (__v8di)
2235 _mm512_setzero_si512 (),
2236 (__mmask8) __U);
2237}
2238
2239extern __inline __m512i
2240__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2241_mm512_cvtepi16_epi32 (__m256i __A)
2242{
2243 return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2244 (__v16si)
2245 _mm512_undefined_epi32 (),
2246 (__mmask16) -1);
2247}
2248
2249extern __inline __m512i
2250__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2251_mm512_mask_cvtepi16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
2252{
2253 return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2254 (__v16si) __W,
2255 (__mmask16) __U);
2256}
2257
2258extern __inline __m512i
2259__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2260_mm512_maskz_cvtepi16_epi32 (__mmask16 __U, __m256i __A)
2261{
2262 return (__m512i) __builtin_ia32_pmovsxwd512_mask ((__v16hi) __A,
2263 (__v16si)
2264 _mm512_setzero_si512 (),
2265 (__mmask16) __U);
2266}
2267
2268extern __inline __m512i
2269__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2270_mm512_cvtepi16_epi64 (__m128i __A)
2271{
2272 return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2273 (__v8di)
2274 _mm512_undefined_epi32 (),
2275 (__mmask8) -1);
2276}
2277
2278extern __inline __m512i
2279__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2280_mm512_mask_cvtepi16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2281{
2282 return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2283 (__v8di) __W,
2284 (__mmask8) __U);
2285}
2286
2287extern __inline __m512i
2288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2289_mm512_maskz_cvtepi16_epi64 (__mmask8 __U, __m128i __A)
2290{
2291 return (__m512i) __builtin_ia32_pmovsxwq512_mask ((__v8hi) __A,
2292 (__v8di)
2293 _mm512_setzero_si512 (),
2294 (__mmask8) __U);
2295}
2296
2297extern __inline __m512i
2298__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2299_mm512_cvtepi32_epi64 (__m256i __X)
2300{
2301 return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2302 (__v8di)
2303 _mm512_undefined_epi32 (),
2304 (__mmask8) -1);
2305}
2306
2307extern __inline __m512i
2308__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2309_mm512_mask_cvtepi32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
2310{
2311 return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2312 (__v8di) __W,
2313 (__mmask8) __U);
2314}
2315
2316extern __inline __m512i
2317__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2318_mm512_maskz_cvtepi32_epi64 (__mmask8 __U, __m256i __X)
2319{
2320 return (__m512i) __builtin_ia32_pmovsxdq512_mask ((__v8si) __X,
2321 (__v8di)
2322 _mm512_setzero_si512 (),
2323 (__mmask8) __U);
2324}
2325
2326extern __inline __m512i
2327__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2328_mm512_cvtepu8_epi32 (__m128i __A)
2329{
2330 return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2331 (__v16si)
2332 _mm512_undefined_epi32 (),
2333 (__mmask16) -1);
2334}
2335
2336extern __inline __m512i
2337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2338_mm512_mask_cvtepu8_epi32 (__m512i __W, __mmask16 __U, __m128i __A)
2339{
2340 return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2341 (__v16si) __W,
2342 (__mmask16) __U);
2343}
2344
2345extern __inline __m512i
2346__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2347_mm512_maskz_cvtepu8_epi32 (__mmask16 __U, __m128i __A)
2348{
2349 return (__m512i) __builtin_ia32_pmovzxbd512_mask ((__v16qi) __A,
2350 (__v16si)
2351 _mm512_setzero_si512 (),
2352 (__mmask16) __U);
2353}
2354
2355extern __inline __m512i
2356__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2357_mm512_cvtepu8_epi64 (__m128i __A)
2358{
2359 return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2360 (__v8di)
2361 _mm512_undefined_epi32 (),
2362 (__mmask8) -1);
2363}
2364
2365extern __inline __m512i
2366__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2367_mm512_mask_cvtepu8_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2368{
2369 return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2370 (__v8di) __W,
2371 (__mmask8) __U);
2372}
2373
2374extern __inline __m512i
2375__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2376_mm512_maskz_cvtepu8_epi64 (__mmask8 __U, __m128i __A)
2377{
2378 return (__m512i) __builtin_ia32_pmovzxbq512_mask ((__v16qi) __A,
2379 (__v8di)
2380 _mm512_setzero_si512 (),
2381 (__mmask8) __U);
2382}
2383
2384extern __inline __m512i
2385__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2386_mm512_cvtepu16_epi32 (__m256i __A)
2387{
2388 return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2389 (__v16si)
2390 _mm512_undefined_epi32 (),
2391 (__mmask16) -1);
2392}
2393
2394extern __inline __m512i
2395__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2396_mm512_mask_cvtepu16_epi32 (__m512i __W, __mmask16 __U, __m256i __A)
2397{
2398 return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2399 (__v16si) __W,
2400 (__mmask16) __U);
2401}
2402
2403extern __inline __m512i
2404__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2405_mm512_maskz_cvtepu16_epi32 (__mmask16 __U, __m256i __A)
2406{
2407 return (__m512i) __builtin_ia32_pmovzxwd512_mask ((__v16hi) __A,
2408 (__v16si)
2409 _mm512_setzero_si512 (),
2410 (__mmask16) __U);
2411}
2412
2413extern __inline __m512i
2414__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2415_mm512_cvtepu16_epi64 (__m128i __A)
2416{
2417 return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2418 (__v8di)
2419 _mm512_undefined_epi32 (),
2420 (__mmask8) -1);
2421}
2422
2423extern __inline __m512i
2424__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2425_mm512_mask_cvtepu16_epi64 (__m512i __W, __mmask8 __U, __m128i __A)
2426{
2427 return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2428 (__v8di) __W,
2429 (__mmask8) __U);
2430}
2431
2432extern __inline __m512i
2433__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2434_mm512_maskz_cvtepu16_epi64 (__mmask8 __U, __m128i __A)
2435{
2436 return (__m512i) __builtin_ia32_pmovzxwq512_mask ((__v8hi) __A,
2437 (__v8di)
2438 _mm512_setzero_si512 (),
2439 (__mmask8) __U);
2440}
2441
2442extern __inline __m512i
2443__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2444_mm512_cvtepu32_epi64 (__m256i __X)
2445{
2446 return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2447 (__v8di)
2448 _mm512_undefined_epi32 (),
2449 (__mmask8) -1);
2450}
2451
2452extern __inline __m512i
2453__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2454_mm512_mask_cvtepu32_epi64 (__m512i __W, __mmask8 __U, __m256i __X)
2455{
2456 return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2457 (__v8di) __W,
2458 (__mmask8) __U);
2459}
2460
2461extern __inline __m512i
2462__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2463_mm512_maskz_cvtepu32_epi64 (__mmask8 __U, __m256i __X)
2464{
2465 return (__m512i) __builtin_ia32_pmovzxdq512_mask ((__v8si) __X,
2466 (__v8di)
2467 _mm512_setzero_si512 (),
2468 (__mmask8) __U);
2469}
2470
2471#ifdef __OPTIMIZE__
2472extern __inline __m512d
2473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2474_mm512_add_round_pd (__m512d __A, __m512d __B, const int __R)
2475{
2476 return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2477 (__v8df) __B,
2478 (__v8df)
2479 _mm512_undefined_pd (),
2480 (__mmask8) -1, __R);
2481}
2482
2483extern __inline __m512d
2484__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2485_mm512_mask_add_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2486 __m512d __B, const int __R)
2487{
2488 return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2489 (__v8df) __B,
2490 (__v8df) __W,
2491 (__mmask8) __U, __R);
2492}
2493
2494extern __inline __m512d
2495__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2496_mm512_maskz_add_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2497 const int __R)
2498{
2499 return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
2500 (__v8df) __B,
2501 (__v8df)
2502 _mm512_setzero_pd (),
2503 (__mmask8) __U, __R);
2504}
2505
2506extern __inline __m512
2507__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2508_mm512_add_round_ps (__m512 __A, __m512 __B, const int __R)
2509{
2510 return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2511 (__v16sf) __B,
2512 (__v16sf)
2513 _mm512_undefined_ps (),
2514 (__mmask16) -1, __R);
2515}
2516
2517extern __inline __m512
2518__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2520 __m512 __B, const int __R)
2521{
2522 return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2523 (__v16sf) __B,
2524 (__v16sf) __W,
2525 (__mmask16) __U, __R);
2526}
2527
2528extern __inline __m512
2529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2530_mm512_maskz_add_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2531{
2532 return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
2533 (__v16sf) __B,
2534 (__v16sf)
2535 _mm512_setzero_ps (),
2536 (__mmask16) __U, __R);
2537}
2538
2539extern __inline __m512d
2540__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2541_mm512_sub_round_pd (__m512d __A, __m512d __B, const int __R)
2542{
2543 return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2544 (__v8df) __B,
2545 (__v8df)
2546 _mm512_undefined_pd (),
2547 (__mmask8) -1, __R);
2548}
2549
2550extern __inline __m512d
2551__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2552_mm512_mask_sub_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2553 __m512d __B, const int __R)
2554{
2555 return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2556 (__v8df) __B,
2557 (__v8df) __W,
2558 (__mmask8) __U, __R);
2559}
2560
2561extern __inline __m512d
2562__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2563_mm512_maskz_sub_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2564 const int __R)
2565{
2566 return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
2567 (__v8df) __B,
2568 (__v8df)
2569 _mm512_setzero_pd (),
2570 (__mmask8) __U, __R);
2571}
2572
2573extern __inline __m512
2574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2575_mm512_sub_round_ps (__m512 __A, __m512 __B, const int __R)
2576{
2577 return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2578 (__v16sf) __B,
2579 (__v16sf)
2580 _mm512_undefined_ps (),
2581 (__mmask16) -1, __R);
2582}
2583
2584extern __inline __m512
2585__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2587 __m512 __B, const int __R)
2588{
2589 return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2590 (__v16sf) __B,
2591 (__v16sf) __W,
2592 (__mmask16) __U, __R);
2593}
2594
2595extern __inline __m512
2596__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2597_mm512_maskz_sub_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2598{
2599 return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
2600 (__v16sf) __B,
2601 (__v16sf)
2602 _mm512_setzero_ps (),
2603 (__mmask16) __U, __R);
2604}
2605#else
2606#define _mm512_add_round_pd(A, B, C) \
2607 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2608
2609#define _mm512_mask_add_round_pd(W, U, A, B, C) \
2610 (__m512d)__builtin_ia32_addpd512_mask(A, B, W, U, C)
2611
2612#define _mm512_maskz_add_round_pd(U, A, B, C) \
2613 (__m512d)__builtin_ia32_addpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2614
2615#define _mm512_add_round_ps(A, B, C) \
2616 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2617
2618#define _mm512_mask_add_round_ps(W, U, A, B, C) \
2619 (__m512)__builtin_ia32_addps512_mask(A, B, W, U, C)
2620
2621#define _mm512_maskz_add_round_ps(U, A, B, C) \
2622 (__m512)__builtin_ia32_addps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2623
2624#define _mm512_sub_round_pd(A, B, C) \
2625 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2626
2627#define _mm512_mask_sub_round_pd(W, U, A, B, C) \
2628 (__m512d)__builtin_ia32_subpd512_mask(A, B, W, U, C)
2629
2630#define _mm512_maskz_sub_round_pd(U, A, B, C) \
2631 (__m512d)__builtin_ia32_subpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2632
2633#define _mm512_sub_round_ps(A, B, C) \
2634 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2635
2636#define _mm512_mask_sub_round_ps(W, U, A, B, C) \
2637 (__m512)__builtin_ia32_subps512_mask(A, B, W, U, C)
2638
2639#define _mm512_maskz_sub_round_ps(U, A, B, C) \
2640 (__m512)__builtin_ia32_subps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2641#endif
2642
2643#ifdef __OPTIMIZE__
2644extern __inline __m512d
2645__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2646_mm512_mul_round_pd (__m512d __A, __m512d __B, const int __R)
2647{
2648 return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2649 (__v8df) __B,
2650 (__v8df)
2651 _mm512_undefined_pd (),
2652 (__mmask8) -1, __R);
2653}
2654
2655extern __inline __m512d
2656__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2657_mm512_mask_mul_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2658 __m512d __B, const int __R)
2659{
2660 return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2661 (__v8df) __B,
2662 (__v8df) __W,
2663 (__mmask8) __U, __R);
2664}
2665
2666extern __inline __m512d
2667__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2668_mm512_maskz_mul_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
2669 const int __R)
2670{
2671 return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
2672 (__v8df) __B,
2673 (__v8df)
2674 _mm512_setzero_pd (),
2675 (__mmask8) __U, __R);
2676}
2677
2678extern __inline __m512
2679__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2680_mm512_mul_round_ps (__m512 __A, __m512 __B, const int __R)
2681{
2682 return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2683 (__v16sf) __B,
2684 (__v16sf)
2685 _mm512_undefined_ps (),
2686 (__mmask16) -1, __R);
2687}
2688
2689extern __inline __m512
2690__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2692 __m512 __B, const int __R)
2693{
2694 return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2695 (__v16sf) __B,
2696 (__v16sf) __W,
2697 (__mmask16) __U, __R);
2698}
2699
2700extern __inline __m512
2701__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2702_mm512_maskz_mul_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2703{
2704 return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
2705 (__v16sf) __B,
2706 (__v16sf)
2707 _mm512_setzero_ps (),
2708 (__mmask16) __U, __R);
2709}
2710
2711extern __inline __m512d
2712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2713_mm512_div_round_pd (__m512d __M, __m512d __V, const int __R)
2714{
2715 return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2716 (__v8df) __V,
2717 (__v8df)
2718 _mm512_undefined_pd (),
2719 (__mmask8) -1, __R);
2720}
2721
2722extern __inline __m512d
2723__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2724_mm512_mask_div_round_pd (__m512d __W, __mmask8 __U, __m512d __M,
2725 __m512d __V, const int __R)
2726{
2727 return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2728 (__v8df) __V,
2729 (__v8df) __W,
2730 (__mmask8) __U, __R);
2731}
2732
2733extern __inline __m512d
2734__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2735_mm512_maskz_div_round_pd (__mmask8 __U, __m512d __M, __m512d __V,
2736 const int __R)
2737{
2738 return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
2739 (__v8df) __V,
2740 (__v8df)
2741 _mm512_setzero_pd (),
2742 (__mmask8) __U, __R);
2743}
2744
2745extern __inline __m512
2746__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2747_mm512_div_round_ps (__m512 __A, __m512 __B, const int __R)
2748{
2749 return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2750 (__v16sf) __B,
2751 (__v16sf)
2752 _mm512_undefined_ps (),
2753 (__mmask16) -1, __R);
2754}
2755
2756extern __inline __m512
2757__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2759 __m512 __B, const int __R)
2760{
2761 return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2762 (__v16sf) __B,
2763 (__v16sf) __W,
2764 (__mmask16) __U, __R);
2765}
2766
2767extern __inline __m512
2768__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2769_mm512_maskz_div_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
2770{
2771 return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
2772 (__v16sf) __B,
2773 (__v16sf)
2774 _mm512_setzero_ps (),
2775 (__mmask16) __U, __R);
2776}
2777
2778extern __inline __m128d
2779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2780_mm_mul_round_sd (__m128d __A, __m128d __B, const int __R)
2781{
2782 return (__m128d) __builtin_ia32_mulsd_round ((__v2df) __A,
2783 (__v2df) __B,
2784 __R);
2785}
2786
2787extern __inline __m128d
2788__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2789_mm_mask_mul_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
2790 __m128d __B, const int __R)
2791{
2792 return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
2793 (__v2df) __B,
2794 (__v2df) __W,
2795 (__mmask8) __U, __R);
2796}
2797
2798extern __inline __m128d
2799__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2800_mm_maskz_mul_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
2801 const int __R)
2802{
2803 return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
2804 (__v2df) __B,
2805 (__v2df)
2806 _mm_setzero_pd (),
2807 (__mmask8) __U, __R);
2808}
2809
2810extern __inline __m128
2811__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2812_mm_mul_round_ss (__m128 __A, __m128 __B, const int __R)
2813{
2814 return (__m128) __builtin_ia32_mulss_round ((__v4sf) __A,
2815 (__v4sf) __B,
2816 __R);
2817}
2818
2819extern __inline __m128
2820__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2821_mm_mask_mul_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
2822 __m128 __B, const int __R)
2823{
2824 return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
2825 (__v4sf) __B,
2826 (__v4sf) __W,
2827 (__mmask8) __U, __R);
2828}
2829
2830extern __inline __m128
2831__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2832_mm_maskz_mul_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
2833 const int __R)
2834{
2835 return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
2836 (__v4sf) __B,
2837 (__v4sf)
2838 _mm_setzero_ps (),
2839 (__mmask8) __U, __R);
2840}
2841
2842extern __inline __m128d
2843__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2844_mm_div_round_sd (__m128d __A, __m128d __B, const int __R)
2845{
2846 return (__m128d) __builtin_ia32_divsd_round ((__v2df) __A,
2847 (__v2df) __B,
2848 __R);
2849}
2850
2851extern __inline __m128d
2852__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2853_mm_mask_div_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
2854 __m128d __B, const int __R)
2855{
2856 return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
2857 (__v2df) __B,
2858 (__v2df) __W,
2859 (__mmask8) __U, __R);
2860}
2861
2862extern __inline __m128d
2863__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2864_mm_maskz_div_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
2865 const int __R)
2866{
2867 return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
2868 (__v2df) __B,
2869 (__v2df)
2870 _mm_setzero_pd (),
2871 (__mmask8) __U, __R);
2872}
2873
2874extern __inline __m128
2875__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2876_mm_div_round_ss (__m128 __A, __m128 __B, const int __R)
2877{
2878 return (__m128) __builtin_ia32_divss_round ((__v4sf) __A,
2879 (__v4sf) __B,
2880 __R);
2881}
2882
2883extern __inline __m128
2884__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2885_mm_mask_div_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
2886 __m128 __B, const int __R)
2887{
2888 return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
2889 (__v4sf) __B,
2890 (__v4sf) __W,
2891 (__mmask8) __U, __R);
2892}
2893
2894extern __inline __m128
2895__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2896_mm_maskz_div_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
2897 const int __R)
2898{
2899 return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
2900 (__v4sf) __B,
2901 (__v4sf)
2902 _mm_setzero_ps (),
2903 (__mmask8) __U, __R);
2904}
2905
2906#else
2907#define _mm512_mul_round_pd(A, B, C) \
2908 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2909
2910#define _mm512_mask_mul_round_pd(W, U, A, B, C) \
2911 (__m512d)__builtin_ia32_mulpd512_mask(A, B, W, U, C)
2912
2913#define _mm512_maskz_mul_round_pd(U, A, B, C) \
2914 (__m512d)__builtin_ia32_mulpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2915
2916#define _mm512_mul_round_ps(A, B, C) \
2917 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2918
2919#define _mm512_mask_mul_round_ps(W, U, A, B, C) \
2920 (__m512)__builtin_ia32_mulps512_mask(A, B, W, U, C)
2921
2922#define _mm512_maskz_mul_round_ps(U, A, B, C) \
2923 (__m512)__builtin_ia32_mulps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2924
2925#define _mm512_div_round_pd(A, B, C) \
2926 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C)
2927
2928#define _mm512_mask_div_round_pd(W, U, A, B, C) \
2929 (__m512d)__builtin_ia32_divpd512_mask(A, B, W, U, C)
2930
2931#define _mm512_maskz_div_round_pd(U, A, B, C) \
2932 (__m512d)__builtin_ia32_divpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C)
2933
2934#define _mm512_div_round_ps(A, B, C) \
2935 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C)
2936
2937#define _mm512_mask_div_round_ps(W, U, A, B, C) \
2938 (__m512)__builtin_ia32_divps512_mask(A, B, W, U, C)
2939
2940#define _mm512_maskz_div_round_ps(U, A, B, C) \
2941 (__m512)__builtin_ia32_divps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C)
2942
2943#define _mm_mul_round_sd(A, B, C) \
2944 (__m128d)__builtin_ia32_mulsd_round(A, B, C)
2945
2946#define _mm_mask_mul_round_sd(W, U, A, B, C) \
2947 (__m128d)__builtin_ia32_mulsd_mask_round(A, B, W, U, C)
2948
2949#define _mm_maskz_mul_round_sd(U, A, B, C) \
2950 (__m128d)__builtin_ia32_mulsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2951
2952#define _mm_mul_round_ss(A, B, C) \
2953 (__m128)__builtin_ia32_mulss_round(A, B, C)
2954
2955#define _mm_mask_mul_round_ss(W, U, A, B, C) \
2956 (__m128)__builtin_ia32_mulss_mask_round(A, B, W, U, C)
2957
2958#define _mm_maskz_mul_round_ss(U, A, B, C) \
2959 (__m128)__builtin_ia32_mulss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2960
2961#define _mm_div_round_sd(A, B, C) \
2962 (__m128d)__builtin_ia32_divsd_round(A, B, C)
2963
2964#define _mm_mask_div_round_sd(W, U, A, B, C) \
2965 (__m128d)__builtin_ia32_divsd_mask_round(A, B, W, U, C)
2966
2967#define _mm_maskz_div_round_sd(U, A, B, C) \
2968 (__m128d)__builtin_ia32_divsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
2969
2970#define _mm_div_round_ss(A, B, C) \
2971 (__m128)__builtin_ia32_divss_round(A, B, C)
2972
2973#define _mm_mask_div_round_ss(W, U, A, B, C) \
2974 (__m128)__builtin_ia32_divss_mask_round(A, B, W, U, C)
2975
2976#define _mm_maskz_div_round_ss(U, A, B, C) \
2977 (__m128)__builtin_ia32_divss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
2978
2979#endif
2980
2981#ifdef __OPTIMIZE__
2982extern __inline __m512d
2983__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2984_mm512_max_round_pd (__m512d __A, __m512d __B, const int __R)
2985{
2986 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
2987 (__v8df) __B,
2988 (__v8df)
2989 _mm512_undefined_pd (),
2990 (__mmask8) -1, __R);
2991}
2992
2993extern __inline __m512d
2994__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
2995_mm512_mask_max_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
2996 __m512d __B, const int __R)
2997{
2998 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
2999 (__v8df) __B,
3000 (__v8df) __W,
3001 (__mmask8) __U, __R);
3002}
3003
3004extern __inline __m512d
3005__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3006_mm512_maskz_max_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3007 const int __R)
3008{
3009 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
3010 (__v8df) __B,
3011 (__v8df)
3012 _mm512_setzero_pd (),
3013 (__mmask8) __U, __R);
3014}
3015
3016extern __inline __m512
3017__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3018_mm512_max_round_ps (__m512 __A, __m512 __B, const int __R)
3019{
3020 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
3021 (__v16sf) __B,
3022 (__v16sf)
3023 _mm512_undefined_ps (),
3024 (__mmask16) -1, __R);
3025}
3026
3027extern __inline __m512
3028__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3030 __m512 __B, const int __R)
3031{
3032 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
3033 (__v16sf) __B,
3034 (__v16sf) __W,
3035 (__mmask16) __U, __R);
3036}
3037
3038extern __inline __m512
3039__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3040_mm512_maskz_max_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
3041{
3042 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
3043 (__v16sf) __B,
3044 (__v16sf)
3045 _mm512_setzero_ps (),
3046 (__mmask16) __U, __R);
3047}
3048
3049extern __inline __m512d
3050__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3051_mm512_min_round_pd (__m512d __A, __m512d __B, const int __R)
3052{
3053 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3054 (__v8df) __B,
3055 (__v8df)
3056 _mm512_undefined_pd (),
3057 (__mmask8) -1, __R);
3058}
3059
3060extern __inline __m512d
3061__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3062_mm512_mask_min_round_pd (__m512d __W, __mmask8 __U, __m512d __A,
3063 __m512d __B, const int __R)
3064{
3065 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3066 (__v8df) __B,
3067 (__v8df) __W,
3068 (__mmask8) __U, __R);
3069}
3070
3071extern __inline __m512d
3072__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3073_mm512_maskz_min_round_pd (__mmask8 __U, __m512d __A, __m512d __B,
3074 const int __R)
3075{
3076 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
3077 (__v8df) __B,
3078 (__v8df)
3079 _mm512_setzero_pd (),
3080 (__mmask8) __U, __R);
3081}
3082
3083extern __inline __m512
3084__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3085_mm512_min_round_ps (__m512 __A, __m512 __B, const int __R)
3086{
3087 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3088 (__v16sf) __B,
3089 (__v16sf)
3090 _mm512_undefined_ps (),
3091 (__mmask16) -1, __R);
3092}
3093
3094extern __inline __m512
3095__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3097 __m512 __B, const int __R)
3098{
3099 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3100 (__v16sf) __B,
3101 (__v16sf) __W,
3102 (__mmask16) __U, __R);
3103}
3104
3105extern __inline __m512
3106__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3107_mm512_maskz_min_round_ps (__mmask16 __U, __m512 __A, __m512 __B, const int __R)
3108{
3109 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
3110 (__v16sf) __B,
3111 (__v16sf)
3112 _mm512_setzero_ps (),
3113 (__mmask16) __U, __R);
3114}
3115#else
3116#define _mm512_max_round_pd(A, B, R) \
3117 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
3118
3119#define _mm512_mask_max_round_pd(W, U, A, B, R) \
3120 (__m512d)__builtin_ia32_maxpd512_mask(A, B, W, U, R)
3121
3122#define _mm512_maskz_max_round_pd(U, A, B, R) \
3123 (__m512d)__builtin_ia32_maxpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
3124
3125#define _mm512_max_round_ps(A, B, R) \
3126 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_undefined_pd(), -1, R)
3127
3128#define _mm512_mask_max_round_ps(W, U, A, B, R) \
3129 (__m512)__builtin_ia32_maxps512_mask(A, B, W, U, R)
3130
3131#define _mm512_maskz_max_round_ps(U, A, B, R) \
3132 (__m512)__builtin_ia32_maxps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
3133
3134#define _mm512_min_round_pd(A, B, R) \
3135 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, R)
3136
3137#define _mm512_mask_min_round_pd(W, U, A, B, R) \
3138 (__m512d)__builtin_ia32_minpd512_mask(A, B, W, U, R)
3139
3140#define _mm512_maskz_min_round_pd(U, A, B, R) \
3141 (__m512d)__builtin_ia32_minpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, R)
3142
3143#define _mm512_min_round_ps(A, B, R) \
3144 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, R)
3145
3146#define _mm512_mask_min_round_ps(W, U, A, B, R) \
3147 (__m512)__builtin_ia32_minps512_mask(A, B, W, U, R)
3148
3149#define _mm512_maskz_min_round_ps(U, A, B, R) \
3150 (__m512)__builtin_ia32_minps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, R)
3151#endif
3152
3153#ifdef __OPTIMIZE__
3154extern __inline __m512d
3155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3156_mm512_scalef_round_pd (__m512d __A, __m512d __B, const int __R)
3157{
3158 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3159 (__v8df) __B,
3160 (__v8df)
3161 _mm512_undefined_pd (),
3162 (__mmask8) -1, __R);
3163}
3164
3165extern __inline __m512d
3166__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3168 __m512d __B, const int __R)
3169{
3170 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3171 (__v8df) __B,
3172 (__v8df) __W,
3173 (__mmask8) __U, __R);
3174}
3175
3176extern __inline __m512d
3177__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3179 const int __R)
3180{
3181 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
3182 (__v8df) __B,
3183 (__v8df)
3184 _mm512_setzero_pd (),
3185 (__mmask8) __U, __R);
3186}
3187
3188extern __inline __m512
3189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3190_mm512_scalef_round_ps (__m512 __A, __m512 __B, const int __R)
3191{
3192 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3193 (__v16sf) __B,
3194 (__v16sf)
3195 _mm512_undefined_ps (),
3196 (__mmask16) -1, __R);
3197}
3198
3199extern __inline __m512
3200__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3202 __m512 __B, const int __R)
3203{
3204 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3205 (__v16sf) __B,
3206 (__v16sf) __W,
3207 (__mmask16) __U, __R);
3208}
3209
3210extern __inline __m512
3211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3213 const int __R)
3214{
3215 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
3216 (__v16sf) __B,
3217 (__v16sf)
3218 _mm512_setzero_ps (),
3219 (__mmask16) __U, __R);
3220}
3221
3222extern __inline __m128d
3223__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3224_mm_scalef_round_sd (__m128d __A, __m128d __B, const int __R)
3225{
3226 return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3227 (__v2df) __B,
3228 (__v2df)
3229 _mm_setzero_pd (),
3230 (__mmask8) -1, __R);
3231}
3232
3233extern __inline __m128d
3234__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3235_mm_mask_scalef_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
3236 const int __R)
3237{
3238 return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3239 (__v2df) __B,
3240 (__v2df) __W,
3241 (__mmask8) __U, __R);
3242}
3243
3244extern __inline __m128d
3245__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3246_mm_maskz_scalef_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
3247 const int __R)
3248{
3249 return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
3250 (__v2df) __B,
3251 (__v2df)
3252 _mm_setzero_pd (),
3253 (__mmask8) __U, __R);
3254}
3255
3256extern __inline __m128
3257__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3258_mm_scalef_round_ss (__m128 __A, __m128 __B, const int __R)
3259{
3260 return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3261 (__v4sf) __B,
3262 (__v4sf)
3263 _mm_setzero_ps (),
3264 (__mmask8) -1, __R);
3265}
3266
3267extern __inline __m128
3268__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3269_mm_mask_scalef_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
3270 const int __R)
3271{
3272 return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3273 (__v4sf) __B,
3274 (__v4sf) __W,
3275 (__mmask8) __U, __R);
3276}
3277
3278extern __inline __m128
3279__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3280_mm_maskz_scalef_round_ss (__mmask8 __U, __m128 __A, __m128 __B, const int __R)
3281{
3282 return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
3283 (__v4sf) __B,
3284 (__v4sf)
3285 _mm_setzero_ps (),
3286 (__mmask8) __U, __R);
3287}
3288#else
3289#define _mm512_scalef_round_pd(A, B, C) \
3290 ((__m512d) \
3291 __builtin_ia32_scalefpd512_mask((A), (B), \
3292 (__v8df) _mm512_undefined_pd(), \
3293 -1, (C)))
3294
3295#define _mm512_mask_scalef_round_pd(W, U, A, B, C) \
3296 ((__m512d) __builtin_ia32_scalefpd512_mask((A), (B), (W), (U), (C)))
3297
3298#define _mm512_maskz_scalef_round_pd(U, A, B, C) \
3299 ((__m512d) \
3300 __builtin_ia32_scalefpd512_mask((A), (B), \
3301 (__v8df) _mm512_setzero_pd(), \
3302 (U), (C)))
3303
3304#define _mm512_scalef_round_ps(A, B, C) \
3305 ((__m512) \
3306 __builtin_ia32_scalefps512_mask((A), (B), \
3307 (__v16sf) _mm512_undefined_ps(), \
3308 -1, (C)))
3309
3310#define _mm512_mask_scalef_round_ps(W, U, A, B, C) \
3311 ((__m512) __builtin_ia32_scalefps512_mask((A), (B), (W), (U), (C)))
3312
3313#define _mm512_maskz_scalef_round_ps(U, A, B, C) \
3314 ((__m512) \
3315 __builtin_ia32_scalefps512_mask((A), (B), \
3316 (__v16sf) _mm512_setzero_ps(), \
3317 (U), (C)))
3318
3319#define _mm_scalef_round_sd(A, B, C) \
3320 ((__m128d) \
3321 __builtin_ia32_scalefsd_mask_round ((A), (B), \
3322 (__v2df) _mm_undefined_pd (), \
3323 -1, (C)))
3324
3325#define _mm_scalef_round_ss(A, B, C) \
3326 ((__m128) \
3327 __builtin_ia32_scalefss_mask_round ((A), (B), \
3328 (__v4sf) _mm_undefined_ps (), \
3329 -1, (C)))
3330
3331#define _mm_mask_scalef_round_sd(W, U, A, B, C) \
3332 ((__m128d) \
3333 __builtin_ia32_scalefsd_mask_round ((A), (B), (W), (U), (C)))
3334
3335#define _mm_mask_scalef_round_ss(W, U, A, B, C) \
3336 ((__m128) \
3337 __builtin_ia32_scalefss_mask_round ((A), (B), (W), (U), (C)))
3338
3339#define _mm_maskz_scalef_round_sd(U, A, B, C) \
3340 ((__m128d) \
3341 __builtin_ia32_scalefsd_mask_round ((A), (B), \
3342 (__v2df) _mm_setzero_pd (), \
3343 (U), (C)))
3344
3345#define _mm_maskz_scalef_round_ss(U, A, B, C) \
3346 ((__m128) \
3347 __builtin_ia32_scalefss_mask_round ((A), (B), \
3348 (__v4sf) _mm_setzero_ps (), \
3349 (U), (C)))
3350#endif
3351
3352#define _mm_mask_scalef_sd(W, U, A, B) \
3353 _mm_mask_scalef_round_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
3354
3355#define _mm_maskz_scalef_sd(U, A, B) \
3356 _mm_maskz_scalef_round_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
3357
3358#define _mm_mask_scalef_ss(W, U, A, B) \
3359 _mm_mask_scalef_round_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
3360
3361#define _mm_maskz_scalef_ss(U, A, B) \
3362 _mm_maskz_scalef_round_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
3363
3364#ifdef __OPTIMIZE__
3365extern __inline __m512d
3366__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3367_mm512_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3368{
3369 return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
3370 (__v8df) __B,
3371 (__v8df) __C,
3372 (__mmask8) -1, __R);
3373}
3374
3375extern __inline __m512d
3376__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3377_mm512_mask_fmadd_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3378 __m512d __C, const int __R)
3379{
3380 return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
3381 (__v8df) __B,
3382 (__v8df) __C,
3383 (__mmask8) __U, __R);
3384}
3385
3386extern __inline __m512d
3387__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3388_mm512_mask3_fmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3389 __mmask8 __U, const int __R)
3390{
3391 return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
3392 (__v8df) __B,
3393 (__v8df) __C,
3394 (__mmask8) __U, __R);
3395}
3396
3397extern __inline __m512d
3398__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3400 __m512d __C, const int __R)
3401{
3402 return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
3403 (__v8df) __B,
3404 (__v8df) __C,
3405 (__mmask8) __U, __R);
3406}
3407
3408extern __inline __m512
3409__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3410_mm512_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3411{
3412 return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
3413 (__v16sf) __B,
3414 (__v16sf) __C,
3415 (__mmask16) -1, __R);
3416}
3417
3418extern __inline __m512
3419__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3421 __m512 __C, const int __R)
3422{
3423 return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
3424 (__v16sf) __B,
3425 (__v16sf) __C,
3426 (__mmask16) __U, __R);
3427}
3428
3429extern __inline __m512
3430__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3431_mm512_mask3_fmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3432 __mmask16 __U, const int __R)
3433{
3434 return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
3435 (__v16sf) __B,
3436 (__v16sf) __C,
3437 (__mmask16) __U, __R);
3438}
3439
3440extern __inline __m512
3441__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3443 __m512 __C, const int __R)
3444{
3445 return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
3446 (__v16sf) __B,
3447 (__v16sf) __C,
3448 (__mmask16) __U, __R);
3449}
3450
3451extern __inline __m512d
3452__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3453_mm512_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3454{
3455 return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
3456 (__v8df) __B,
3457 (__v8df) __C,
3458 (__mmask8) -1, __R);
3459}
3460
3461extern __inline __m512d
3462__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3463_mm512_mask_fmsub_round_pd (__m512d __A, __mmask8 __U, __m512d __B,
3464 __m512d __C, const int __R)
3465{
3466 return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
3467 (__v8df) __B,
3468 (__v8df) __C,
3469 (__mmask8) __U, __R);
3470}
3471
3472extern __inline __m512d
3473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3474_mm512_mask3_fmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3475 __mmask8 __U, const int __R)
3476{
3477 return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
3478 (__v8df) __B,
3479 (__v8df) __C,
3480 (__mmask8) __U, __R);
3481}
3482
3483extern __inline __m512d
3484__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3486 __m512d __C, const int __R)
3487{
3488 return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
3489 (__v8df) __B,
3490 (__v8df) __C,
3491 (__mmask8) __U, __R);
3492}
3493
3494extern __inline __m512
3495__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3496_mm512_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3497{
3498 return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
3499 (__v16sf) __B,
3500 (__v16sf) __C,
3501 (__mmask16) -1, __R);
3502}
3503
3504extern __inline __m512
3505__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3507 __m512 __C, const int __R)
3508{
3509 return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
3510 (__v16sf) __B,
3511 (__v16sf) __C,
3512 (__mmask16) __U, __R);
3513}
3514
3515extern __inline __m512
3516__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3517_mm512_mask3_fmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3518 __mmask16 __U, const int __R)
3519{
3520 return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
3521 (__v16sf) __B,
3522 (__v16sf) __C,
3523 (__mmask16) __U, __R);
3524}
3525
3526extern __inline __m512
3527__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3529 __m512 __C, const int __R)
3530{
3531 return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
3532 (__v16sf) __B,
3533 (__v16sf) __C,
3534 (__mmask16) __U, __R);
3535}
3536
3537extern __inline __m512d
3538__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3539_mm512_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3540{
3541 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3542 (__v8df) __B,
3543 (__v8df) __C,
3544 (__mmask8) -1, __R);
3545}
3546
3547extern __inline __m512d
3548__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3550 __m512d __C, const int __R)
3551{
3552 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3553 (__v8df) __B,
3554 (__v8df) __C,
3555 (__mmask8) __U, __R);
3556}
3557
3558extern __inline __m512d
3559__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3560_mm512_mask3_fmaddsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3561 __mmask8 __U, const int __R)
3562{
3563 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
3564 (__v8df) __B,
3565 (__v8df) __C,
3566 (__mmask8) __U, __R);
3567}
3568
3569extern __inline __m512d
3570__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3572 __m512d __C, const int __R)
3573{
3574 return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3575 (__v8df) __B,
3576 (__v8df) __C,
3577 (__mmask8) __U, __R);
3578}
3579
3580extern __inline __m512
3581__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3582_mm512_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3583{
3584 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3585 (__v16sf) __B,
3586 (__v16sf) __C,
3587 (__mmask16) -1, __R);
3588}
3589
3590extern __inline __m512
3591__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3593 __m512 __C, const int __R)
3594{
3595 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3596 (__v16sf) __B,
3597 (__v16sf) __C,
3598 (__mmask16) __U, __R);
3599}
3600
3601extern __inline __m512
3602__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3603_mm512_mask3_fmaddsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3604 __mmask16 __U, const int __R)
3605{
3606 return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
3607 (__v16sf) __B,
3608 (__v16sf) __C,
3609 (__mmask16) __U, __R);
3610}
3611
3612extern __inline __m512
3613__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3615 __m512 __C, const int __R)
3616{
3617 return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3618 (__v16sf) __B,
3619 (__v16sf) __C,
3620 (__mmask16) __U, __R);
3621}
3622
3623extern __inline __m512d
3624__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3625_mm512_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3626{
3627 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3628 (__v8df) __B,
3629 -(__v8df) __C,
3630 (__mmask8) -1, __R);
3631}
3632
3633extern __inline __m512d
3634__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3636 __m512d __C, const int __R)
3637{
3638 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
3639 (__v8df) __B,
3640 -(__v8df) __C,
3641 (__mmask8) __U, __R);
3642}
3643
3644extern __inline __m512d
3645__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3646_mm512_mask3_fmsubadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3647 __mmask8 __U, const int __R)
3648{
3649 return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
3650 (__v8df) __B,
3651 (__v8df) __C,
3652 (__mmask8) __U, __R);
3653}
3654
3655extern __inline __m512d
3656__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3658 __m512d __C, const int __R)
3659{
3660 return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
3661 (__v8df) __B,
3662 -(__v8df) __C,
3663 (__mmask8) __U, __R);
3664}
3665
3666extern __inline __m512
3667__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3668_mm512_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3669{
3670 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3671 (__v16sf) __B,
3672 -(__v16sf) __C,
3673 (__mmask16) -1, __R);
3674}
3675
3676extern __inline __m512
3677__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3679 __m512 __C, const int __R)
3680{
3681 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
3682 (__v16sf) __B,
3683 -(__v16sf) __C,
3684 (__mmask16) __U, __R);
3685}
3686
3687extern __inline __m512
3688__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3689_mm512_mask3_fmsubadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3690 __mmask16 __U, const int __R)
3691{
3692 return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
3693 (__v16sf) __B,
3694 (__v16sf) __C,
3695 (__mmask16) __U, __R);
3696}
3697
3698extern __inline __m512
3699__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3701 __m512 __C, const int __R)
3702{
3703 return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
3704 (__v16sf) __B,
3705 -(__v16sf) __C,
3706 (__mmask16) __U, __R);
3707}
3708
3709extern __inline __m512d
3710__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3711_mm512_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3712{
3713 return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
3714 (__v8df) __B,
3715 (__v8df) __C,
3716 (__mmask8) -1, __R);
3717}
3718
3719extern __inline __m512d
3720__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3722 __m512d __C, const int __R)
3723{
3724 return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
3725 (__v8df) __B,
3726 (__v8df) __C,
3727 (__mmask8) __U, __R);
3728}
3729
3730extern __inline __m512d
3731__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3732_mm512_mask3_fnmadd_round_pd (__m512d __A, __m512d __B, __m512d __C,
3733 __mmask8 __U, const int __R)
3734{
3735 return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
3736 (__v8df) __B,
3737 (__v8df) __C,
3738 (__mmask8) __U, __R);
3739}
3740
3741extern __inline __m512d
3742__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3744 __m512d __C, const int __R)
3745{
3746 return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
3747 (__v8df) __B,
3748 (__v8df) __C,
3749 (__mmask8) __U, __R);
3750}
3751
3752extern __inline __m512
3753__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3754_mm512_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3755{
3756 return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
3757 (__v16sf) __B,
3758 (__v16sf) __C,
3759 (__mmask16) -1, __R);
3760}
3761
3762extern __inline __m512
3763__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3765 __m512 __C, const int __R)
3766{
3767 return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
3768 (__v16sf) __B,
3769 (__v16sf) __C,
3770 (__mmask16) __U, __R);
3771}
3772
3773extern __inline __m512
3774__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3775_mm512_mask3_fnmadd_round_ps (__m512 __A, __m512 __B, __m512 __C,
3776 __mmask16 __U, const int __R)
3777{
3778 return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
3779 (__v16sf) __B,
3780 (__v16sf) __C,
3781 (__mmask16) __U, __R);
3782}
3783
3784extern __inline __m512
3785__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3787 __m512 __C, const int __R)
3788{
3789 return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
3790 (__v16sf) __B,
3791 (__v16sf) __C,
3792 (__mmask16) __U, __R);
3793}
3794
3795extern __inline __m512d
3796__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3797_mm512_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C, const int __R)
3798{
3799 return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
3800 (__v8df) __B,
3801 (__v8df) __C,
3802 (__mmask8) -1, __R);
3803}
3804
3805extern __inline __m512d
3806__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3808 __m512d __C, const int __R)
3809{
3810 return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
3811 (__v8df) __B,
3812 (__v8df) __C,
3813 (__mmask8) __U, __R);
3814}
3815
3816extern __inline __m512d
3817__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3818_mm512_mask3_fnmsub_round_pd (__m512d __A, __m512d __B, __m512d __C,
3819 __mmask8 __U, const int __R)
3820{
3821 return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
3822 (__v8df) __B,
3823 (__v8df) __C,
3824 (__mmask8) __U, __R);
3825}
3826
3827extern __inline __m512d
3828__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3830 __m512d __C, const int __R)
3831{
3832 return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
3833 (__v8df) __B,
3834 (__v8df) __C,
3835 (__mmask8) __U, __R);
3836}
3837
3838extern __inline __m512
3839__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3840_mm512_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C, const int __R)
3841{
3842 return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
3843 (__v16sf) __B,
3844 (__v16sf) __C,
3845 (__mmask16) -1, __R);
3846}
3847
3848extern __inline __m512
3849__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3851 __m512 __C, const int __R)
3852{
3853 return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
3854 (__v16sf) __B,
3855 (__v16sf) __C,
3856 (__mmask16) __U, __R);
3857}
3858
3859extern __inline __m512
3860__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3861_mm512_mask3_fnmsub_round_ps (__m512 __A, __m512 __B, __m512 __C,
3862 __mmask16 __U, const int __R)
3863{
3864 return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
3865 (__v16sf) __B,
3866 (__v16sf) __C,
3867 (__mmask16) __U, __R);
3868}
3869
3870extern __inline __m512
3871__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
3873 __m512 __C, const int __R)
3874{
3875 return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
3876 (__v16sf) __B,
3877 (__v16sf) __C,
3878 (__mmask16) __U, __R);
3879}
3880#else
3881#define _mm512_fmadd_round_pd(A, B, C, R) \
3882 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, -1, R)
3883
3884#define _mm512_mask_fmadd_round_pd(A, U, B, C, R) \
3885 (__m512d)__builtin_ia32_vfmaddpd512_mask(A, B, C, U, R)
3886
3887#define _mm512_mask3_fmadd_round_pd(A, B, C, U, R) \
3888 (__m512d)__builtin_ia32_vfmaddpd512_mask3(A, B, C, U, R)
3889
3890#define _mm512_maskz_fmadd_round_pd(U, A, B, C, R) \
3891 (__m512d)__builtin_ia32_vfmaddpd512_maskz(A, B, C, U, R)
3892
3893#define _mm512_fmadd_round_ps(A, B, C, R) \
3894 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, -1, R)
3895
3896#define _mm512_mask_fmadd_round_ps(A, U, B, C, R) \
3897 (__m512)__builtin_ia32_vfmaddps512_mask(A, B, C, U, R)
3898
3899#define _mm512_mask3_fmadd_round_ps(A, B, C, U, R) \
3900 (__m512)__builtin_ia32_vfmaddps512_mask3(A, B, C, U, R)
3901
3902#define _mm512_maskz_fmadd_round_ps(U, A, B, C, R) \
3903 (__m512)__builtin_ia32_vfmaddps512_maskz(A, B, C, U, R)
3904
3905#define _mm512_fmsub_round_pd(A, B, C, R) \
3906 (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, -1, R)
3907
3908#define _mm512_mask_fmsub_round_pd(A, U, B, C, R) \
3909 (__m512d)__builtin_ia32_vfmsubpd512_mask(A, B, C, U, R)
3910
3911#define _mm512_mask3_fmsub_round_pd(A, B, C, U, R) \
3912 (__m512d)__builtin_ia32_vfmsubpd512_mask3(A, B, C, U, R)
3913
3914#define _mm512_maskz_fmsub_round_pd(U, A, B, C, R) \
3915 (__m512d)__builtin_ia32_vfmsubpd512_maskz(A, B, C, U, R)
3916
3917#define _mm512_fmsub_round_ps(A, B, C, R) \
3918 (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, -1, R)
3919
3920#define _mm512_mask_fmsub_round_ps(A, U, B, C, R) \
3921 (__m512)__builtin_ia32_vfmsubps512_mask(A, B, C, U, R)
3922
3923#define _mm512_mask3_fmsub_round_ps(A, B, C, U, R) \
3924 (__m512)__builtin_ia32_vfmsubps512_mask3(A, B, C, U, R)
3925
3926#define _mm512_maskz_fmsub_round_ps(U, A, B, C, R) \
3927 (__m512)__builtin_ia32_vfmsubps512_maskz(A, B, C, U, R)
3928
3929#define _mm512_fmaddsub_round_pd(A, B, C, R) \
3930 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, -1, R)
3931
3932#define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R) \
3933 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, C, U, R)
3934
3935#define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R) \
3936 (__m512d)__builtin_ia32_vfmaddsubpd512_mask3(A, B, C, U, R)
3937
3938#define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R) \
3939 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, C, U, R)
3940
3941#define _mm512_fmaddsub_round_ps(A, B, C, R) \
3942 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, -1, R)
3943
3944#define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R) \
3945 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, C, U, R)
3946
3947#define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R) \
3948 (__m512)__builtin_ia32_vfmaddsubps512_mask3(A, B, C, U, R)
3949
3950#define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R) \
3951 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, C, U, R)
3952
3953#define _mm512_fmsubadd_round_pd(A, B, C, R) \
3954 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), -1, R)
3955
3956#define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R) \
3957 (__m512d)__builtin_ia32_vfmaddsubpd512_mask(A, B, -(C), U, R)
3958
3959#define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R) \
3960 (__m512d)__builtin_ia32_vfmsubaddpd512_mask3(A, B, C, U, R)
3961
3962#define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R) \
3963 (__m512d)__builtin_ia32_vfmaddsubpd512_maskz(A, B, -(C), U, R)
3964
3965#define _mm512_fmsubadd_round_ps(A, B, C, R) \
3966 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), -1, R)
3967
3968#define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R) \
3969 (__m512)__builtin_ia32_vfmaddsubps512_mask(A, B, -(C), U, R)
3970
3971#define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R) \
3972 (__m512)__builtin_ia32_vfmsubaddps512_mask3(A, B, C, U, R)
3973
3974#define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R) \
3975 (__m512)__builtin_ia32_vfmaddsubps512_maskz(A, B, -(C), U, R)
3976
3977#define _mm512_fnmadd_round_pd(A, B, C, R) \
3978 (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, -1, R)
3979
3980#define _mm512_mask_fnmadd_round_pd(A, U, B, C, R) \
3981 (__m512d)__builtin_ia32_vfnmaddpd512_mask(A, B, C, U, R)
3982
3983#define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R) \
3984 (__m512d)__builtin_ia32_vfnmaddpd512_mask3(A, B, C, U, R)
3985
3986#define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R) \
3987 (__m512d)__builtin_ia32_vfnmaddpd512_maskz(A, B, C, U, R)
3988
3989#define _mm512_fnmadd_round_ps(A, B, C, R) \
3990 (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, -1, R)
3991
3992#define _mm512_mask_fnmadd_round_ps(A, U, B, C, R) \
3993 (__m512)__builtin_ia32_vfnmaddps512_mask(A, B, C, U, R)
3994
3995#define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R) \
3996 (__m512)__builtin_ia32_vfnmaddps512_mask3(A, B, C, U, R)
3997
3998#define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R) \
3999 (__m512)__builtin_ia32_vfnmaddps512_maskz(A, B, C, U, R)
4000
4001#define _mm512_fnmsub_round_pd(A, B, C, R) \
4002 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, -1, R)
4003
4004#define _mm512_mask_fnmsub_round_pd(A, U, B, C, R) \
4005 (__m512d)__builtin_ia32_vfnmsubpd512_mask(A, B, C, U, R)
4006
4007#define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R) \
4008 (__m512d)__builtin_ia32_vfnmsubpd512_mask3(A, B, C, U, R)
4009
4010#define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R) \
4011 (__m512d)__builtin_ia32_vfnmsubpd512_maskz(A, B, C, U, R)
4012
4013#define _mm512_fnmsub_round_ps(A, B, C, R) \
4014 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, -1, R)
4015
4016#define _mm512_mask_fnmsub_round_ps(A, U, B, C, R) \
4017 (__m512)__builtin_ia32_vfnmsubps512_mask(A, B, C, U, R)
4018
4019#define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R) \
4020 (__m512)__builtin_ia32_vfnmsubps512_mask3(A, B, C, U, R)
4021
4022#define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R) \
4023 (__m512)__builtin_ia32_vfnmsubps512_maskz(A, B, C, U, R)
4024#endif
4025
4026extern __inline __m512i
4027__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4028_mm512_abs_epi64 (__m512i __A)
4029{
4030 return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
4031 (__v8di)
4032 _mm512_undefined_epi32 (),
4033 (__mmask8) -1);
4034}
4035
4036extern __inline __m512i
4037__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4038_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
4039{
4040 return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
4041 (__v8di) __W,
4042 (__mmask8) __U);
4043}
4044
4045extern __inline __m512i
4046__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4047_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
4048{
4049 return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
4050 (__v8di)
4051 _mm512_setzero_si512 (),
4052 (__mmask8) __U);
4053}
4054
4055extern __inline __m512i
4056__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4057_mm512_abs_epi32 (__m512i __A)
4058{
4059 return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
4060 (__v16si)
4061 _mm512_undefined_epi32 (),
4062 (__mmask16) -1);
4063}
4064
4065extern __inline __m512i
4066__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4067_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
4068{
4069 return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
4070 (__v16si) __W,
4071 (__mmask16) __U);
4072}
4073
4074extern __inline __m512i
4075__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4076_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
4077{
4078 return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
4079 (__v16si)
4080 _mm512_setzero_si512 (),
4081 (__mmask16) __U);
4082}
4083
4084extern __inline __m512
4085__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4086_mm512_broadcastss_ps (__m128 __A)
4087{
4088 return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
4089 (__v16sf)
4090 _mm512_undefined_ps (),
4091 (__mmask16) -1);
4092}
4093
4094extern __inline __m512
4095__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4096_mm512_mask_broadcastss_ps (__m512 __O, __mmask16 __M, __m128 __A)
4097{
4098 return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
4099 (__v16sf) __O, __M);
4100}
4101
4102extern __inline __m512
4103__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4104_mm512_maskz_broadcastss_ps (__mmask16 __M, __m128 __A)
4105{
4106 return (__m512) __builtin_ia32_broadcastss512 ((__v4sf) __A,
4107 (__v16sf)
4108 _mm512_setzero_ps (),
4109 __M);
4110}
4111
4112extern __inline __m512d
4113__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4114_mm512_broadcastsd_pd (__m128d __A)
4115{
4116 return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4117 (__v8df)
4118 _mm512_undefined_pd (),
4119 (__mmask8) -1);
4120}
4121
4122extern __inline __m512d
4123__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4124_mm512_mask_broadcastsd_pd (__m512d __O, __mmask8 __M, __m128d __A)
4125{
4126 return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4127 (__v8df) __O, __M);
4128}
4129
4130extern __inline __m512d
4131__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4132_mm512_maskz_broadcastsd_pd (__mmask8 __M, __m128d __A)
4133{
4134 return (__m512d) __builtin_ia32_broadcastsd512 ((__v2df) __A,
4135 (__v8df)
4136 _mm512_setzero_pd (),
4137 __M);
4138}
4139
4140extern __inline __m512i
4141__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4142_mm512_broadcastd_epi32 (__m128i __A)
4143{
4144 return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4145 (__v16si)
4146 _mm512_undefined_epi32 (),
4147 (__mmask16) -1);
4148}
4149
4150extern __inline __m512i
4151__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4152_mm512_mask_broadcastd_epi32 (__m512i __O, __mmask16 __M, __m128i __A)
4153{
4154 return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4155 (__v16si) __O, __M);
4156}
4157
4158extern __inline __m512i
4159__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4160_mm512_maskz_broadcastd_epi32 (__mmask16 __M, __m128i __A)
4161{
4162 return (__m512i) __builtin_ia32_pbroadcastd512 ((__v4si) __A,
4163 (__v16si)
4164 _mm512_setzero_si512 (),
4165 __M);
4166}
4167
4168extern __inline __m512i
4169__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4170_mm512_set1_epi32 (int __A)
4171{
4172 return (__m512i)(__v16si)
4173 { __A, __A, __A, __A, __A, __A, __A, __A,
4174 __A, __A, __A, __A, __A, __A, __A, __A };
4175}
4176
4177extern __inline __m512i
4178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4179_mm512_mask_set1_epi32 (__m512i __O, __mmask16 __M, int __A)
4180{
4181 return (__m512i) __builtin_ia32_pbroadcastd512_gpr_mask (__A, (__v16si) __O,
4182 __M);
4183}
4184
4185extern __inline __m512i
4186__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4187_mm512_maskz_set1_epi32 (__mmask16 __M, int __A)
4188{
4189 return (__m512i)
4190 __builtin_ia32_pbroadcastd512_gpr_mask (__A,
4191 (__v16si) _mm512_setzero_si512 (),
4192 __M);
4193}
4194
4195extern __inline __m512i
4196__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4197_mm512_broadcastq_epi64 (__m128i __A)
4198{
4199 return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4200 (__v8di)
4201 _mm512_undefined_epi32 (),
4202 (__mmask8) -1);
4203}
4204
4205extern __inline __m512i
4206__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4207_mm512_mask_broadcastq_epi64 (__m512i __O, __mmask8 __M, __m128i __A)
4208{
4209 return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4210 (__v8di) __O, __M);
4211}
4212
4213extern __inline __m512i
4214__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4215_mm512_maskz_broadcastq_epi64 (__mmask8 __M, __m128i __A)
4216{
4217 return (__m512i) __builtin_ia32_pbroadcastq512 ((__v2di) __A,
4218 (__v8di)
4219 _mm512_setzero_si512 (),
4220 __M);
4221}
4222
4223extern __inline __m512i
4224__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4225_mm512_set1_epi64 (long long __A)
4226{
4227 return (__m512i)(__v8di) { __A, __A, __A, __A, __A, __A, __A, __A };
4228}
4229
4230extern __inline __m512i
4231__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4232_mm512_mask_set1_epi64 (__m512i __O, __mmask8 __M, long long __A)
4233{
4234 return (__m512i) __builtin_ia32_pbroadcastq512_gpr_mask (__A, (__v8di) __O,
4235 __M);
4236}
4237
4238extern __inline __m512i
4239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4240_mm512_maskz_set1_epi64 (__mmask8 __M, long long __A)
4241{
4242 return (__m512i)
4243 __builtin_ia32_pbroadcastq512_gpr_mask (__A,
4244 (__v8di) _mm512_setzero_si512 (),
4245 __M);
4246}
4247
4248extern __inline __m512
4249__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4250_mm512_broadcast_f32x4 (__m128 __A)
4251{
4252 return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4253 (__v16sf)
4254 _mm512_undefined_ps (),
4255 (__mmask16) -1);
4256}
4257
4258extern __inline __m512
4259__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4260_mm512_mask_broadcast_f32x4 (__m512 __O, __mmask16 __M, __m128 __A)
4261{
4262 return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4263 (__v16sf) __O,
4264 __M);
4265}
4266
4267extern __inline __m512
4268__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4269_mm512_maskz_broadcast_f32x4 (__mmask16 __M, __m128 __A)
4270{
4271 return (__m512) __builtin_ia32_broadcastf32x4_512 ((__v4sf) __A,
4272 (__v16sf)
4273 _mm512_setzero_ps (),
4274 __M);
4275}
4276
4277extern __inline __m512i
4278__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4279_mm512_broadcast_i32x4 (__m128i __A)
4280{
4281 return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4282 (__v16si)
4283 _mm512_undefined_epi32 (),
4284 (__mmask16) -1);
4285}
4286
4287extern __inline __m512i
4288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4289_mm512_mask_broadcast_i32x4 (__m512i __O, __mmask16 __M, __m128i __A)
4290{
4291 return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4292 (__v16si) __O,
4293 __M);
4294}
4295
4296extern __inline __m512i
4297__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4298_mm512_maskz_broadcast_i32x4 (__mmask16 __M, __m128i __A)
4299{
4300 return (__m512i) __builtin_ia32_broadcasti32x4_512 ((__v4si) __A,
4301 (__v16si)
4302 _mm512_setzero_si512 (),
4303 __M);
4304}
4305
4306extern __inline __m512d
4307__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4308_mm512_broadcast_f64x4 (__m256d __A)
4309{
4310 return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4311 (__v8df)
4312 _mm512_undefined_pd (),
4313 (__mmask8) -1);
4314}
4315
4316extern __inline __m512d
4317__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4318_mm512_mask_broadcast_f64x4 (__m512d __O, __mmask8 __M, __m256d __A)
4319{
4320 return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4321 (__v8df) __O,
4322 __M);
4323}
4324
4325extern __inline __m512d
4326__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4327_mm512_maskz_broadcast_f64x4 (__mmask8 __M, __m256d __A)
4328{
4329 return (__m512d) __builtin_ia32_broadcastf64x4_512 ((__v4df) __A,
4330 (__v8df)
4331 _mm512_setzero_pd (),
4332 __M);
4333}
4334
4335extern __inline __m512i
4336__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4337_mm512_broadcast_i64x4 (__m256i __A)
4338{
4339 return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4340 (__v8di)
4341 _mm512_undefined_epi32 (),
4342 (__mmask8) -1);
4343}
4344
4345extern __inline __m512i
4346__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4347_mm512_mask_broadcast_i64x4 (__m512i __O, __mmask8 __M, __m256i __A)
4348{
4349 return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4350 (__v8di) __O,
4351 __M);
4352}
4353
4354extern __inline __m512i
4355__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4356_mm512_maskz_broadcast_i64x4 (__mmask8 __M, __m256i __A)
4357{
4358 return (__m512i) __builtin_ia32_broadcasti64x4_512 ((__v4di) __A,
4359 (__v8di)
4360 _mm512_setzero_si512 (),
4361 __M);
4362}
4363
4364typedef enum
4365{
4451 _MM_PERM_DDDD = 0xFF
4453
4454#ifdef __OPTIMIZE__
4455extern __inline __m512i
4456__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4457_mm512_shuffle_epi32 (__m512i __A, _MM_PERM_ENUM __mask)
4458{
4459 return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4460 __mask,
4461 (__v16si)
4462 _mm512_undefined_epi32 (),
4463 (__mmask16) -1);
4464}
4465
4466extern __inline __m512i
4467__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4468_mm512_mask_shuffle_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
4469 _MM_PERM_ENUM __mask)
4470{
4471 return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4472 __mask,
4473 (__v16si) __W,
4474 (__mmask16) __U);
4475}
4476
4477extern __inline __m512i
4478__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4480{
4481 return (__m512i) __builtin_ia32_pshufd512_mask ((__v16si) __A,
4482 __mask,
4483 (__v16si)
4484 _mm512_setzero_si512 (),
4485 (__mmask16) __U);
4486}
4487
4488extern __inline __m512i
4489__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4490_mm512_shuffle_i64x2 (__m512i __A, __m512i __B, const int __imm)
4491{
4492 return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4493 (__v8di) __B, __imm,
4494 (__v8di)
4495 _mm512_undefined_epi32 (),
4496 (__mmask8) -1);
4497}
4498
4499extern __inline __m512i
4500__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4501_mm512_mask_shuffle_i64x2 (__m512i __W, __mmask8 __U, __m512i __A,
4502 __m512i __B, const int __imm)
4503{
4504 return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4505 (__v8di) __B, __imm,
4506 (__v8di) __W,
4507 (__mmask8) __U);
4508}
4509
4510extern __inline __m512i
4511__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4512_mm512_maskz_shuffle_i64x2 (__mmask8 __U, __m512i __A, __m512i __B,
4513 const int __imm)
4514{
4515 return (__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di) __A,
4516 (__v8di) __B, __imm,
4517 (__v8di)
4518 _mm512_setzero_si512 (),
4519 (__mmask8) __U);
4520}
4521
4522extern __inline __m512i
4523__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4524_mm512_shuffle_i32x4 (__m512i __A, __m512i __B, const int __imm)
4525{
4526 return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4527 (__v16si) __B,
4528 __imm,
4529 (__v16si)
4530 _mm512_undefined_epi32 (),
4531 (__mmask16) -1);
4532}
4533
4534extern __inline __m512i
4535__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4536_mm512_mask_shuffle_i32x4 (__m512i __W, __mmask16 __U, __m512i __A,
4537 __m512i __B, const int __imm)
4538{
4539 return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4540 (__v16si) __B,
4541 __imm,
4542 (__v16si) __W,
4543 (__mmask16) __U);
4544}
4545
4546extern __inline __m512i
4547__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4549 const int __imm)
4550{
4551 return (__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si) __A,
4552 (__v16si) __B,
4553 __imm,
4554 (__v16si)
4555 _mm512_setzero_si512 (),
4556 (__mmask16) __U);
4557}
4558
4559extern __inline __m512d
4560__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4561_mm512_shuffle_f64x2 (__m512d __A, __m512d __B, const int __imm)
4562{
4563 return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4564 (__v8df) __B, __imm,
4565 (__v8df)
4566 _mm512_undefined_pd (),
4567 (__mmask8) -1);
4568}
4569
4570extern __inline __m512d
4571__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4572_mm512_mask_shuffle_f64x2 (__m512d __W, __mmask8 __U, __m512d __A,
4573 __m512d __B, const int __imm)
4574{
4575 return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4576 (__v8df) __B, __imm,
4577 (__v8df) __W,
4578 (__mmask8) __U);
4579}
4580
4581extern __inline __m512d
4582__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4583_mm512_maskz_shuffle_f64x2 (__mmask8 __U, __m512d __A, __m512d __B,
4584 const int __imm)
4585{
4586 return (__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df) __A,
4587 (__v8df) __B, __imm,
4588 (__v8df)
4589 _mm512_setzero_pd (),
4590 (__mmask8) __U);
4591}
4592
4593extern __inline __m512
4594__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4595_mm512_shuffle_f32x4 (__m512 __A, __m512 __B, const int __imm)
4596{
4597 return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4598 (__v16sf) __B, __imm,
4599 (__v16sf)
4600 _mm512_undefined_ps (),
4601 (__mmask16) -1);
4602}
4603
4604extern __inline __m512
4605__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4607 __m512 __B, const int __imm)
4608{
4609 return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4610 (__v16sf) __B, __imm,
4611 (__v16sf) __W,
4612 (__mmask16) __U);
4613}
4614
4615extern __inline __m512
4616__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4618 const int __imm)
4619{
4620 return (__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf) __A,
4621 (__v16sf) __B, __imm,
4622 (__v16sf)
4623 _mm512_setzero_ps (),
4624 (__mmask16) __U);
4625}
4626
4627#else
4628#define _mm512_shuffle_epi32(X, C) \
4629 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4630 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4631 (__mmask16)-1))
4632
4633#define _mm512_mask_shuffle_epi32(W, U, X, C) \
4634 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4635 (__v16si)(__m512i)(W),\
4636 (__mmask16)(U)))
4637
4638#define _mm512_maskz_shuffle_epi32(U, X, C) \
4639 ((__m512i) __builtin_ia32_pshufd512_mask ((__v16si)(__m512i)(X), (int)(C),\
4640 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4641 (__mmask16)(U)))
4642
4643#define _mm512_shuffle_i64x2(X, Y, C) \
4644 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4645 (__v8di)(__m512i)(Y), (int)(C),\
4646 (__v8di)(__m512i)_mm512_undefined_epi32 (),\
4647 (__mmask8)-1))
4648
4649#define _mm512_mask_shuffle_i64x2(W, U, X, Y, C) \
4650 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4651 (__v8di)(__m512i)(Y), (int)(C),\
4652 (__v8di)(__m512i)(W),\
4653 (__mmask8)(U)))
4654
4655#define _mm512_maskz_shuffle_i64x2(U, X, Y, C) \
4656 ((__m512i) __builtin_ia32_shuf_i64x2_mask ((__v8di)(__m512i)(X), \
4657 (__v8di)(__m512i)(Y), (int)(C),\
4658 (__v8di)(__m512i)_mm512_setzero_si512 (),\
4659 (__mmask8)(U)))
4660
4661#define _mm512_shuffle_i32x4(X, Y, C) \
4662 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4663 (__v16si)(__m512i)(Y), (int)(C),\
4664 (__v16si)(__m512i)_mm512_undefined_epi32 (),\
4665 (__mmask16)-1))
4666
4667#define _mm512_mask_shuffle_i32x4(W, U, X, Y, C) \
4668 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4669 (__v16si)(__m512i)(Y), (int)(C),\
4670 (__v16si)(__m512i)(W),\
4671 (__mmask16)(U)))
4672
4673#define _mm512_maskz_shuffle_i32x4(U, X, Y, C) \
4674 ((__m512i) __builtin_ia32_shuf_i32x4_mask ((__v16si)(__m512i)(X), \
4675 (__v16si)(__m512i)(Y), (int)(C),\
4676 (__v16si)(__m512i)_mm512_setzero_si512 (),\
4677 (__mmask16)(U)))
4678
4679#define _mm512_shuffle_f64x2(X, Y, C) \
4680 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4681 (__v8df)(__m512d)(Y), (int)(C),\
4682 (__v8df)(__m512d)_mm512_undefined_pd(),\
4683 (__mmask8)-1))
4684
4685#define _mm512_mask_shuffle_f64x2(W, U, X, Y, C) \
4686 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4687 (__v8df)(__m512d)(Y), (int)(C),\
4688 (__v8df)(__m512d)(W),\
4689 (__mmask8)(U)))
4690
4691#define _mm512_maskz_shuffle_f64x2(U, X, Y, C) \
4692 ((__m512d) __builtin_ia32_shuf_f64x2_mask ((__v8df)(__m512d)(X), \
4693 (__v8df)(__m512d)(Y), (int)(C),\
4694 (__v8df)(__m512d)_mm512_setzero_pd(),\
4695 (__mmask8)(U)))
4696
4697#define _mm512_shuffle_f32x4(X, Y, C) \
4698 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4699 (__v16sf)(__m512)(Y), (int)(C),\
4700 (__v16sf)(__m512)_mm512_undefined_ps(),\
4701 (__mmask16)-1))
4702
4703#define _mm512_mask_shuffle_f32x4(W, U, X, Y, C) \
4704 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4705 (__v16sf)(__m512)(Y), (int)(C),\
4706 (__v16sf)(__m512)(W),\
4707 (__mmask16)(U)))
4708
4709#define _mm512_maskz_shuffle_f32x4(U, X, Y, C) \
4710 ((__m512) __builtin_ia32_shuf_f32x4_mask ((__v16sf)(__m512)(X), \
4711 (__v16sf)(__m512)(Y), (int)(C),\
4712 (__v16sf)(__m512)_mm512_setzero_ps(),\
4713 (__mmask16)(U)))
4714#endif
4715
4716extern __inline __m512i
4717__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4718_mm512_rolv_epi32 (__m512i __A, __m512i __B)
4719{
4720 return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4721 (__v16si) __B,
4722 (__v16si)
4723 _mm512_undefined_epi32 (),
4724 (__mmask16) -1);
4725}
4726
4727extern __inline __m512i
4728__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4729_mm512_mask_rolv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4730{
4731 return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4732 (__v16si) __B,
4733 (__v16si) __W,
4734 (__mmask16) __U);
4735}
4736
4737extern __inline __m512i
4738__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4739_mm512_maskz_rolv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
4740{
4741 return (__m512i) __builtin_ia32_prolvd512_mask ((__v16si) __A,
4742 (__v16si) __B,
4743 (__v16si)
4744 _mm512_setzero_si512 (),
4745 (__mmask16) __U);
4746}
4747
4748extern __inline __m512i
4749__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4750_mm512_rorv_epi32 (__m512i __A, __m512i __B)
4751{
4752 return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4753 (__v16si) __B,
4754 (__v16si)
4755 _mm512_undefined_epi32 (),
4756 (__mmask16) -1);
4757}
4758
4759extern __inline __m512i
4760__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4761_mm512_mask_rorv_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
4762{
4763 return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4764 (__v16si) __B,
4765 (__v16si) __W,
4766 (__mmask16) __U);
4767}
4768
4769extern __inline __m512i
4770__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4771_mm512_maskz_rorv_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
4772{
4773 return (__m512i) __builtin_ia32_prorvd512_mask ((__v16si) __A,
4774 (__v16si) __B,
4775 (__v16si)
4776 _mm512_setzero_si512 (),
4777 (__mmask16) __U);
4778}
4779
4780extern __inline __m512i
4781__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4782_mm512_rolv_epi64 (__m512i __A, __m512i __B)
4783{
4784 return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4785 (__v8di) __B,
4786 (__v8di)
4787 _mm512_undefined_epi32 (),
4788 (__mmask8) -1);
4789}
4790
4791extern __inline __m512i
4792__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4793_mm512_mask_rolv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4794{
4795 return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4796 (__v8di) __B,
4797 (__v8di) __W,
4798 (__mmask8) __U);
4799}
4800
4801extern __inline __m512i
4802__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4803_mm512_maskz_rolv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
4804{
4805 return (__m512i) __builtin_ia32_prolvq512_mask ((__v8di) __A,
4806 (__v8di) __B,
4807 (__v8di)
4808 _mm512_setzero_si512 (),
4809 (__mmask8) __U);
4810}
4811
4812extern __inline __m512i
4813__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4814_mm512_rorv_epi64 (__m512i __A, __m512i __B)
4815{
4816 return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4817 (__v8di) __B,
4818 (__v8di)
4819 _mm512_undefined_epi32 (),
4820 (__mmask8) -1);
4821}
4822
4823extern __inline __m512i
4824__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4825_mm512_mask_rorv_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
4826{
4827 return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4828 (__v8di) __B,
4829 (__v8di) __W,
4830 (__mmask8) __U);
4831}
4832
4833extern __inline __m512i
4834__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4835_mm512_maskz_rorv_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
4836{
4837 return (__m512i) __builtin_ia32_prorvq512_mask ((__v8di) __A,
4838 (__v8di) __B,
4839 (__v8di)
4840 _mm512_setzero_si512 (),
4841 (__mmask8) __U);
4842}
4843
4844#ifdef __OPTIMIZE__
4845extern __inline __m256i
4846__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4847_mm512_cvtt_roundpd_epi32 (__m512d __A, const int __R)
4848{
4849 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4850 (__v8si)
4851 _mm256_undefined_si256 (),
4852 (__mmask8) -1, __R);
4853}
4854
4855extern __inline __m256i
4856__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4858 const int __R)
4859{
4860 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4861 (__v8si) __W,
4862 (__mmask8) __U, __R);
4863}
4864
4865extern __inline __m256i
4866__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4868{
4869 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
4870 (__v8si)
4871 _mm256_setzero_si256 (),
4872 (__mmask8) __U, __R);
4873}
4874
4875extern __inline __m256i
4876__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4877_mm512_cvtt_roundpd_epu32 (__m512d __A, const int __R)
4878{
4879 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4880 (__v8si)
4881 _mm256_undefined_si256 (),
4882 (__mmask8) -1, __R);
4883}
4884
4885extern __inline __m256i
4886__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4888 const int __R)
4889{
4890 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4891 (__v8si) __W,
4892 (__mmask8) __U, __R);
4893}
4894
4895extern __inline __m256i
4896__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4898{
4899 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
4900 (__v8si)
4901 _mm256_setzero_si256 (),
4902 (__mmask8) __U, __R);
4903}
4904#else
4905#define _mm512_cvtt_roundpd_epi32(A, B) \
4906 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4907
4908#define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B) \
4909 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)(W), U, B))
4910
4911#define _mm512_maskz_cvtt_roundpd_epi32(U, A, B) \
4912 ((__m256i)__builtin_ia32_cvttpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4913
4914#define _mm512_cvtt_roundpd_epu32(A, B) \
4915 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4916
4917#define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B) \
4918 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)(W), U, B))
4919
4920#define _mm512_maskz_cvtt_roundpd_epu32(U, A, B) \
4921 ((__m256i)__builtin_ia32_cvttpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4922#endif
4923
4924#ifdef __OPTIMIZE__
4925extern __inline __m256i
4926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4927_mm512_cvt_roundpd_epi32 (__m512d __A, const int __R)
4928{
4929 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4930 (__v8si)
4931 _mm256_undefined_si256 (),
4932 (__mmask8) -1, __R);
4933}
4934
4935extern __inline __m256i
4936__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4938 const int __R)
4939{
4940 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4941 (__v8si) __W,
4942 (__mmask8) __U, __R);
4943}
4944
4945extern __inline __m256i
4946__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4948{
4949 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
4950 (__v8si)
4951 _mm256_setzero_si256 (),
4952 (__mmask8) __U, __R);
4953}
4954
4955extern __inline __m256i
4956__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4957_mm512_cvt_roundpd_epu32 (__m512d __A, const int __R)
4958{
4959 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4960 (__v8si)
4961 _mm256_undefined_si256 (),
4962 (__mmask8) -1, __R);
4963}
4964
4965extern __inline __m256i
4966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4968 const int __R)
4969{
4970 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4971 (__v8si) __W,
4972 (__mmask8) __U, __R);
4973}
4974
4975extern __inline __m256i
4976__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
4978{
4979 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
4980 (__v8si)
4981 _mm256_setzero_si256 (),
4982 (__mmask8) __U, __R);
4983}
4984#else
4985#define _mm512_cvt_roundpd_epi32(A, B) \
4986 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4987
4988#define _mm512_mask_cvt_roundpd_epi32(W, U, A, B) \
4989 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)(W), U, B))
4990
4991#define _mm512_maskz_cvt_roundpd_epi32(U, A, B) \
4992 ((__m256i)__builtin_ia32_cvtpd2dq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
4993
4994#define _mm512_cvt_roundpd_epu32(A, B) \
4995 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_undefined_si256(), -1, B))
4996
4997#define _mm512_mask_cvt_roundpd_epu32(W, U, A, B) \
4998 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)(W), U, B))
4999
5000#define _mm512_maskz_cvt_roundpd_epu32(U, A, B) \
5001 ((__m256i)__builtin_ia32_cvtpd2udq512_mask(A, (__v8si)_mm256_setzero_si256(), U, B))
5002#endif
5003
5004#ifdef __OPTIMIZE__
5005extern __inline __m512i
5006__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5007_mm512_cvtt_roundps_epi32 (__m512 __A, const int __R)
5008{
5009 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
5010 (__v16si)
5011 _mm512_undefined_epi32 (),
5012 (__mmask16) -1, __R);
5013}
5014
5015extern __inline __m512i
5016__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5018 const int __R)
5019{
5020 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
5021 (__v16si) __W,
5022 (__mmask16) __U, __R);
5023}
5024
5025extern __inline __m512i
5026__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5028{
5029 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
5030 (__v16si)
5031 _mm512_setzero_si512 (),
5032 (__mmask16) __U, __R);
5033}
5034
5035extern __inline __m512i
5036__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5037_mm512_cvtt_roundps_epu32 (__m512 __A, const int __R)
5038{
5039 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
5040 (__v16si)
5041 _mm512_undefined_epi32 (),
5042 (__mmask16) -1, __R);
5043}
5044
5045extern __inline __m512i
5046__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5048 const int __R)
5049{
5050 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
5051 (__v16si) __W,
5052 (__mmask16) __U, __R);
5053}
5054
5055extern __inline __m512i
5056__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5058{
5059 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
5060 (__v16si)
5061 _mm512_setzero_si512 (),
5062 (__mmask16) __U, __R);
5063}
5064#else
5065#define _mm512_cvtt_roundps_epi32(A, B) \
5066 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5067
5068#define _mm512_mask_cvtt_roundps_epi32(W, U, A, B) \
5069 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)(W), U, B))
5070
5071#define _mm512_maskz_cvtt_roundps_epi32(U, A, B) \
5072 ((__m512i)__builtin_ia32_cvttps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5073
5074#define _mm512_cvtt_roundps_epu32(A, B) \
5075 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5076
5077#define _mm512_mask_cvtt_roundps_epu32(W, U, A, B) \
5078 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)(W), U, B))
5079
5080#define _mm512_maskz_cvtt_roundps_epu32(U, A, B) \
5081 ((__m512i)__builtin_ia32_cvttps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5082#endif
5083
5084#ifdef __OPTIMIZE__
5085extern __inline __m512i
5086__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5087_mm512_cvt_roundps_epi32 (__m512 __A, const int __R)
5088{
5089 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
5090 (__v16si)
5091 _mm512_undefined_epi32 (),
5092 (__mmask16) -1, __R);
5093}
5094
5095extern __inline __m512i
5096__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5098 const int __R)
5099{
5100 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
5101 (__v16si) __W,
5102 (__mmask16) __U, __R);
5103}
5104
5105extern __inline __m512i
5106__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5108{
5109 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
5110 (__v16si)
5111 _mm512_setzero_si512 (),
5112 (__mmask16) __U, __R);
5113}
5114
5115extern __inline __m512i
5116__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5117_mm512_cvt_roundps_epu32 (__m512 __A, const int __R)
5118{
5119 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5120 (__v16si)
5121 _mm512_undefined_epi32 (),
5122 (__mmask16) -1, __R);
5123}
5124
5125extern __inline __m512i
5126__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5128 const int __R)
5129{
5130 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5131 (__v16si) __W,
5132 (__mmask16) __U, __R);
5133}
5134
5135extern __inline __m512i
5136__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5138{
5139 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
5140 (__v16si)
5141 _mm512_setzero_si512 (),
5142 (__mmask16) __U, __R);
5143}
5144#else
5145#define _mm512_cvt_roundps_epi32(A, B) \
5146 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5147
5148#define _mm512_mask_cvt_roundps_epi32(W, U, A, B) \
5149 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)(W), U, B))
5150
5151#define _mm512_maskz_cvt_roundps_epi32(U, A, B) \
5152 ((__m512i)__builtin_ia32_cvtps2dq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5153
5154#define _mm512_cvt_roundps_epu32(A, B) \
5155 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_undefined_epi32 (), -1, B))
5156
5157#define _mm512_mask_cvt_roundps_epu32(W, U, A, B) \
5158 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)(W), U, B))
5159
5160#define _mm512_maskz_cvt_roundps_epu32(U, A, B) \
5161 ((__m512i)__builtin_ia32_cvtps2udq512_mask(A, (__v16si)_mm512_setzero_si512 (), U, B))
5162#endif
5163
5164extern __inline __m128d
5165__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5166_mm_cvtu32_sd (__m128d __A, unsigned __B)
5167{
5168 return (__m128d) __builtin_ia32_cvtusi2sd32 ((__v2df) __A, __B);
5169}
5170
5171#ifdef __x86_64__
5172#ifdef __OPTIMIZE__
5173extern __inline __m128d
5174__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5175_mm_cvt_roundu64_sd (__m128d __A, unsigned long long __B, const int __R)
5176{
5177 return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B, __R);
5178}
5179
5180extern __inline __m128d
5181__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5182_mm_cvt_roundi64_sd (__m128d __A, long long __B, const int __R)
5183{
5184 return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
5185}
5186
5187extern __inline __m128d
5188__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5189_mm_cvt_roundsi64_sd (__m128d __A, long long __B, const int __R)
5190{
5191 return (__m128d) __builtin_ia32_cvtsi2sd64 ((__v2df) __A, __B, __R);
5192}
5193#else
5194#define _mm_cvt_roundu64_sd(A, B, C) \
5195 (__m128d)__builtin_ia32_cvtusi2sd64(A, B, C)
5196
5197#define _mm_cvt_roundi64_sd(A, B, C) \
5198 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
5199
5200#define _mm_cvt_roundsi64_sd(A, B, C) \
5201 (__m128d)__builtin_ia32_cvtsi2sd64(A, B, C)
5202#endif
5203
5204#endif
5205
5206#ifdef __OPTIMIZE__
5207extern __inline __m128
5208__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5209_mm_cvt_roundu32_ss (__m128 __A, unsigned __B, const int __R)
5210{
5211 return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B, __R);
5212}
5213
5214extern __inline __m128
5215__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5216_mm_cvt_roundsi32_ss (__m128 __A, int __B, const int __R)
5217{
5218 return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
5219}
5220
5221extern __inline __m128
5222__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5223_mm_cvt_roundi32_ss (__m128 __A, int __B, const int __R)
5224{
5225 return (__m128) __builtin_ia32_cvtsi2ss32 ((__v4sf) __A, __B, __R);
5226}
5227#else
5228#define _mm_cvt_roundu32_ss(A, B, C) \
5229 (__m128)__builtin_ia32_cvtusi2ss32(A, B, C)
5230
5231#define _mm_cvt_roundi32_ss(A, B, C) \
5232 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
5233
5234#define _mm_cvt_roundsi32_ss(A, B, C) \
5235 (__m128)__builtin_ia32_cvtsi2ss32(A, B, C)
5236#endif
5237
5238#ifdef __x86_64__
5239#ifdef __OPTIMIZE__
5240extern __inline __m128
5241__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5242_mm_cvt_roundu64_ss (__m128 __A, unsigned long long __B, const int __R)
5243{
5244 return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B, __R);
5245}
5246
5247extern __inline __m128
5248__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5249_mm_cvt_roundsi64_ss (__m128 __A, long long __B, const int __R)
5250{
5251 return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
5252}
5253
5254extern __inline __m128
5255__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5256_mm_cvt_roundi64_ss (__m128 __A, long long __B, const int __R)
5257{
5258 return (__m128) __builtin_ia32_cvtsi2ss64 ((__v4sf) __A, __B, __R);
5259}
5260#else
5261#define _mm_cvt_roundu64_ss(A, B, C) \
5262 (__m128)__builtin_ia32_cvtusi2ss64(A, B, C)
5263
5264#define _mm_cvt_roundi64_ss(A, B, C) \
5265 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
5266
5267#define _mm_cvt_roundsi64_ss(A, B, C) \
5268 (__m128)__builtin_ia32_cvtsi2ss64(A, B, C)
5269#endif
5270
5271#endif
5272
5273extern __inline __m128i
5274__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5275_mm512_cvtepi32_epi8 (__m512i __A)
5276{
5277 return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5278 (__v16qi)
5279 _mm_undefined_si128 (),
5280 (__mmask16) -1);
5281}
5282
5283extern __inline void
5284__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5285_mm512_mask_cvtepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5286{
5287 __builtin_ia32_pmovdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5288}
5289
5290extern __inline __m128i
5291__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5292_mm512_mask_cvtepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5293{
5294 return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5295 (__v16qi) __O, __M);
5296}
5297
5298extern __inline __m128i
5299__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5300_mm512_maskz_cvtepi32_epi8 (__mmask16 __M, __m512i __A)
5301{
5302 return (__m128i) __builtin_ia32_pmovdb512_mask ((__v16si) __A,
5303 (__v16qi)
5304 _mm_setzero_si128 (),
5305 __M);
5306}
5307
5308extern __inline __m128i
5309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5310_mm512_cvtsepi32_epi8 (__m512i __A)
5311{
5312 return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5313 (__v16qi)
5314 _mm_undefined_si128 (),
5315 (__mmask16) -1);
5316}
5317
5318extern __inline void
5319__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5320_mm512_mask_cvtsepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5321{
5322 __builtin_ia32_pmovsdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5323}
5324
5325extern __inline __m128i
5326__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5327_mm512_mask_cvtsepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5328{
5329 return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5330 (__v16qi) __O, __M);
5331}
5332
5333extern __inline __m128i
5334__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5335_mm512_maskz_cvtsepi32_epi8 (__mmask16 __M, __m512i __A)
5336{
5337 return (__m128i) __builtin_ia32_pmovsdb512_mask ((__v16si) __A,
5338 (__v16qi)
5339 _mm_setzero_si128 (),
5340 __M);
5341}
5342
5343extern __inline __m128i
5344__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5345_mm512_cvtusepi32_epi8 (__m512i __A)
5346{
5347 return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5348 (__v16qi)
5349 _mm_undefined_si128 (),
5350 (__mmask16) -1);
5351}
5352
5353extern __inline void
5354__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5355_mm512_mask_cvtusepi32_storeu_epi8 (void * __P, __mmask16 __M, __m512i __A)
5356{
5357 __builtin_ia32_pmovusdb512mem_mask ((__v16qi *) __P, (__v16si) __A, __M);
5358}
5359
5360extern __inline __m128i
5361__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5362_mm512_mask_cvtusepi32_epi8 (__m128i __O, __mmask16 __M, __m512i __A)
5363{
5364 return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5365 (__v16qi) __O,
5366 __M);
5367}
5368
5369extern __inline __m128i
5370__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5371_mm512_maskz_cvtusepi32_epi8 (__mmask16 __M, __m512i __A)
5372{
5373 return (__m128i) __builtin_ia32_pmovusdb512_mask ((__v16si) __A,
5374 (__v16qi)
5375 _mm_setzero_si128 (),
5376 __M);
5377}
5378
5379extern __inline __m256i
5380__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5381_mm512_cvtepi32_epi16 (__m512i __A)
5382{
5383 return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5384 (__v16hi)
5385 _mm256_undefined_si256 (),
5386 (__mmask16) -1);
5387}
5388
5389extern __inline void
5390__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5391_mm512_mask_cvtepi32_storeu_epi16 (void * __P, __mmask16 __M, __m512i __A)
5392{
5393 __builtin_ia32_pmovdw512mem_mask ((__v16hi *) __P, (__v16si) __A, __M);
5394}
5395
5396extern __inline __m256i
5397__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5398_mm512_mask_cvtepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5399{
5400 return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5401 (__v16hi) __O, __M);
5402}
5403
5404extern __inline __m256i
5405__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5406_mm512_maskz_cvtepi32_epi16 (__mmask16 __M, __m512i __A)
5407{
5408 return (__m256i) __builtin_ia32_pmovdw512_mask ((__v16si) __A,
5409 (__v16hi)
5410 _mm256_setzero_si256 (),
5411 __M);
5412}
5413
5414extern __inline __m256i
5415__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5416_mm512_cvtsepi32_epi16 (__m512i __A)
5417{
5418 return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5419 (__v16hi)
5420 _mm256_undefined_si256 (),
5421 (__mmask16) -1);
5422}
5423
5424extern __inline void
5425__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5426_mm512_mask_cvtsepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
5427{
5428 __builtin_ia32_pmovsdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
5429}
5430
5431extern __inline __m256i
5432__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5433_mm512_mask_cvtsepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5434{
5435 return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5436 (__v16hi) __O, __M);
5437}
5438
5439extern __inline __m256i
5440__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5441_mm512_maskz_cvtsepi32_epi16 (__mmask16 __M, __m512i __A)
5442{
5443 return (__m256i) __builtin_ia32_pmovsdw512_mask ((__v16si) __A,
5444 (__v16hi)
5445 _mm256_setzero_si256 (),
5446 __M);
5447}
5448
5449extern __inline __m256i
5450__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5451_mm512_cvtusepi32_epi16 (__m512i __A)
5452{
5453 return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5454 (__v16hi)
5455 _mm256_undefined_si256 (),
5456 (__mmask16) -1);
5457}
5458
5459extern __inline void
5460__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5461_mm512_mask_cvtusepi32_storeu_epi16 (void *__P, __mmask16 __M, __m512i __A)
5462{
5463 __builtin_ia32_pmovusdw512mem_mask ((__v16hi*) __P, (__v16si) __A, __M);
5464}
5465
5466extern __inline __m256i
5467__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5468_mm512_mask_cvtusepi32_epi16 (__m256i __O, __mmask16 __M, __m512i __A)
5469{
5470 return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5471 (__v16hi) __O,
5472 __M);
5473}
5474
5475extern __inline __m256i
5476__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5477_mm512_maskz_cvtusepi32_epi16 (__mmask16 __M, __m512i __A)
5478{
5479 return (__m256i) __builtin_ia32_pmovusdw512_mask ((__v16si) __A,
5480 (__v16hi)
5481 _mm256_setzero_si256 (),
5482 __M);
5483}
5484
5485extern __inline __m256i
5486__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5487_mm512_cvtepi64_epi32 (__m512i __A)
5488{
5489 return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5490 (__v8si)
5491 _mm256_undefined_si256 (),
5492 (__mmask8) -1);
5493}
5494
5495extern __inline void
5496__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5497_mm512_mask_cvtepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
5498{
5499 __builtin_ia32_pmovqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
5500}
5501
5502extern __inline __m256i
5503__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5504_mm512_mask_cvtepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5505{
5506 return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5507 (__v8si) __O, __M);
5508}
5509
5510extern __inline __m256i
5511__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5512_mm512_maskz_cvtepi64_epi32 (__mmask8 __M, __m512i __A)
5513{
5514 return (__m256i) __builtin_ia32_pmovqd512_mask ((__v8di) __A,
5515 (__v8si)
5516 _mm256_setzero_si256 (),
5517 __M);
5518}
5519
5520extern __inline __m256i
5521__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5522_mm512_cvtsepi64_epi32 (__m512i __A)
5523{
5524 return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5525 (__v8si)
5526 _mm256_undefined_si256 (),
5527 (__mmask8) -1);
5528}
5529
5530extern __inline void
5531__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5532_mm512_mask_cvtsepi64_storeu_epi32 (void *__P, __mmask8 __M, __m512i __A)
5533{
5534 __builtin_ia32_pmovsqd512mem_mask ((__v8si *) __P, (__v8di) __A, __M);
5535}
5536
5537extern __inline __m256i
5538__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5539_mm512_mask_cvtsepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5540{
5541 return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5542 (__v8si) __O, __M);
5543}
5544
5545extern __inline __m256i
5546__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5547_mm512_maskz_cvtsepi64_epi32 (__mmask8 __M, __m512i __A)
5548{
5549 return (__m256i) __builtin_ia32_pmovsqd512_mask ((__v8di) __A,
5550 (__v8si)
5551 _mm256_setzero_si256 (),
5552 __M);
5553}
5554
5555extern __inline __m256i
5556__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5557_mm512_cvtusepi64_epi32 (__m512i __A)
5558{
5559 return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5560 (__v8si)
5561 _mm256_undefined_si256 (),
5562 (__mmask8) -1);
5563}
5564
5565extern __inline void
5566__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5567_mm512_mask_cvtusepi64_storeu_epi32 (void* __P, __mmask8 __M, __m512i __A)
5568{
5569 __builtin_ia32_pmovusqd512mem_mask ((__v8si*) __P, (__v8di) __A, __M);
5570}
5571
5572extern __inline __m256i
5573__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5574_mm512_mask_cvtusepi64_epi32 (__m256i __O, __mmask8 __M, __m512i __A)
5575{
5576 return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5577 (__v8si) __O, __M);
5578}
5579
5580extern __inline __m256i
5581__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5582_mm512_maskz_cvtusepi64_epi32 (__mmask8 __M, __m512i __A)
5583{
5584 return (__m256i) __builtin_ia32_pmovusqd512_mask ((__v8di) __A,
5585 (__v8si)
5586 _mm256_setzero_si256 (),
5587 __M);
5588}
5589
5590extern __inline __m128i
5591__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5592_mm512_cvtepi64_epi16 (__m512i __A)
5593{
5594 return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5595 (__v8hi)
5596 _mm_undefined_si128 (),
5597 (__mmask8) -1);
5598}
5599
5600extern __inline void
5601__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5602_mm512_mask_cvtepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
5603{
5604 __builtin_ia32_pmovqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
5605}
5606
5607extern __inline __m128i
5608__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5609_mm512_mask_cvtepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5610{
5611 return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5612 (__v8hi) __O, __M);
5613}
5614
5615extern __inline __m128i
5616__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5617_mm512_maskz_cvtepi64_epi16 (__mmask8 __M, __m512i __A)
5618{
5619 return (__m128i) __builtin_ia32_pmovqw512_mask ((__v8di) __A,
5620 (__v8hi)
5621 _mm_setzero_si128 (),
5622 __M);
5623}
5624
5625extern __inline __m128i
5626__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5627_mm512_cvtsepi64_epi16 (__m512i __A)
5628{
5629 return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5630 (__v8hi)
5631 _mm_undefined_si128 (),
5632 (__mmask8) -1);
5633}
5634
5635extern __inline void
5636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5637_mm512_mask_cvtsepi64_storeu_epi16 (void * __P, __mmask8 __M, __m512i __A)
5638{
5639 __builtin_ia32_pmovsqw512mem_mask ((__v8hi *) __P, (__v8di) __A, __M);
5640}
5641
5642extern __inline __m128i
5643__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5644_mm512_mask_cvtsepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5645{
5646 return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5647 (__v8hi) __O, __M);
5648}
5649
5650extern __inline __m128i
5651__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5652_mm512_maskz_cvtsepi64_epi16 (__mmask8 __M, __m512i __A)
5653{
5654 return (__m128i) __builtin_ia32_pmovsqw512_mask ((__v8di) __A,
5655 (__v8hi)
5656 _mm_setzero_si128 (),
5657 __M);
5658}
5659
5660extern __inline __m128i
5661__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5662_mm512_cvtusepi64_epi16 (__m512i __A)
5663{
5664 return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5665 (__v8hi)
5666 _mm_undefined_si128 (),
5667 (__mmask8) -1);
5668}
5669
5670extern __inline void
5671__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5672_mm512_mask_cvtusepi64_storeu_epi16 (void *__P, __mmask8 __M, __m512i __A)
5673{
5674 __builtin_ia32_pmovusqw512mem_mask ((__v8hi*) __P, (__v8di) __A, __M);
5675}
5676
5677extern __inline __m128i
5678__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5679_mm512_mask_cvtusepi64_epi16 (__m128i __O, __mmask8 __M, __m512i __A)
5680{
5681 return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5682 (__v8hi) __O, __M);
5683}
5684
5685extern __inline __m128i
5686__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5687_mm512_maskz_cvtusepi64_epi16 (__mmask8 __M, __m512i __A)
5688{
5689 return (__m128i) __builtin_ia32_pmovusqw512_mask ((__v8di) __A,
5690 (__v8hi)
5691 _mm_setzero_si128 (),
5692 __M);
5693}
5694
5695extern __inline __m128i
5696__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5697_mm512_cvtepi64_epi8 (__m512i __A)
5698{
5699 return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5700 (__v16qi)
5701 _mm_undefined_si128 (),
5702 (__mmask8) -1);
5703}
5704
5705extern __inline void
5706__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5707_mm512_mask_cvtepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5708{
5709 __builtin_ia32_pmovqb512mem_mask ((unsigned long long *) __P,
5710 (__v8di) __A, __M);
5711}
5712
5713extern __inline __m128i
5714__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5715_mm512_mask_cvtepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5716{
5717 return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5718 (__v16qi) __O, __M);
5719}
5720
5721extern __inline __m128i
5722__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5723_mm512_maskz_cvtepi64_epi8 (__mmask8 __M, __m512i __A)
5724{
5725 return (__m128i) __builtin_ia32_pmovqb512_mask ((__v8di) __A,
5726 (__v16qi)
5727 _mm_setzero_si128 (),
5728 __M);
5729}
5730
5731extern __inline __m128i
5732__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5733_mm512_cvtsepi64_epi8 (__m512i __A)
5734{
5735 return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5736 (__v16qi)
5737 _mm_undefined_si128 (),
5738 (__mmask8) -1);
5739}
5740
5741extern __inline void
5742__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5743_mm512_mask_cvtsepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5744{
5745 __builtin_ia32_pmovsqb512mem_mask ((unsigned long long *) __P, (__v8di) __A, __M);
5746}
5747
5748extern __inline __m128i
5749__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5750_mm512_mask_cvtsepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5751{
5752 return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5753 (__v16qi) __O, __M);
5754}
5755
5756extern __inline __m128i
5757__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5758_mm512_maskz_cvtsepi64_epi8 (__mmask8 __M, __m512i __A)
5759{
5760 return (__m128i) __builtin_ia32_pmovsqb512_mask ((__v8di) __A,
5761 (__v16qi)
5762 _mm_setzero_si128 (),
5763 __M);
5764}
5765
5766extern __inline __m128i
5767__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5768_mm512_cvtusepi64_epi8 (__m512i __A)
5769{
5770 return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5771 (__v16qi)
5772 _mm_undefined_si128 (),
5773 (__mmask8) -1);
5774}
5775
5776extern __inline void
5777__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5778_mm512_mask_cvtusepi64_storeu_epi8 (void * __P, __mmask8 __M, __m512i __A)
5779{
5780 __builtin_ia32_pmovusqb512mem_mask ((unsigned long long *) __P, (__v8di) __A, __M);
5781}
5782
5783extern __inline __m128i
5784__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5785_mm512_mask_cvtusepi64_epi8 (__m128i __O, __mmask8 __M, __m512i __A)
5786{
5787 return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5788 (__v16qi) __O,
5789 __M);
5790}
5791
5792extern __inline __m128i
5793__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5794_mm512_maskz_cvtusepi64_epi8 (__mmask8 __M, __m512i __A)
5795{
5796 return (__m128i) __builtin_ia32_pmovusqb512_mask ((__v8di) __A,
5797 (__v16qi)
5798 _mm_setzero_si128 (),
5799 __M);
5800}
5801
5802extern __inline __m512d
5803__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5804_mm512_cvtepi32_pd (__m256i __A)
5805{
5806 return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5807 (__v8df)
5808 _mm512_undefined_pd (),
5809 (__mmask8) -1);
5810}
5811
5812extern __inline __m512d
5813__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5814_mm512_mask_cvtepi32_pd (__m512d __W, __mmask8 __U, __m256i __A)
5815{
5816 return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5817 (__v8df) __W,
5818 (__mmask8) __U);
5819}
5820
5821extern __inline __m512d
5822__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5823_mm512_maskz_cvtepi32_pd (__mmask8 __U, __m256i __A)
5824{
5825 return (__m512d) __builtin_ia32_cvtdq2pd512_mask ((__v8si) __A,
5826 (__v8df)
5827 _mm512_setzero_pd (),
5828 (__mmask8) __U);
5829}
5830
5831extern __inline __m512d
5832__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5833_mm512_cvtepu32_pd (__m256i __A)
5834{
5835 return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5836 (__v8df)
5837 _mm512_undefined_pd (),
5838 (__mmask8) -1);
5839}
5840
5841extern __inline __m512d
5842__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5843_mm512_mask_cvtepu32_pd (__m512d __W, __mmask8 __U, __m256i __A)
5844{
5845 return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5846 (__v8df) __W,
5847 (__mmask8) __U);
5848}
5849
5850extern __inline __m512d
5851__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5852_mm512_maskz_cvtepu32_pd (__mmask8 __U, __m256i __A)
5853{
5854 return (__m512d) __builtin_ia32_cvtudq2pd512_mask ((__v8si) __A,
5855 (__v8df)
5856 _mm512_setzero_pd (),
5857 (__mmask8) __U);
5858}
5859
5860#ifdef __OPTIMIZE__
5861extern __inline __m512
5862__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5863_mm512_cvt_roundepi32_ps (__m512i __A, const int __R)
5864{
5865 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5866 (__v16sf)
5867 _mm512_undefined_ps (),
5868 (__mmask16) -1, __R);
5869}
5870
5871extern __inline __m512
5872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5874 const int __R)
5875{
5876 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5877 (__v16sf) __W,
5878 (__mmask16) __U, __R);
5879}
5880
5881extern __inline __m512
5882__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5884{
5885 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
5886 (__v16sf)
5887 _mm512_setzero_ps (),
5888 (__mmask16) __U, __R);
5889}
5890
5891extern __inline __m512
5892__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5893_mm512_cvt_roundepu32_ps (__m512i __A, const int __R)
5894{
5895 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5896 (__v16sf)
5897 _mm512_undefined_ps (),
5898 (__mmask16) -1, __R);
5899}
5900
5901extern __inline __m512
5902__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5904 const int __R)
5905{
5906 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5907 (__v16sf) __W,
5908 (__mmask16) __U, __R);
5909}
5910
5911extern __inline __m512
5912__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5914{
5915 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
5916 (__v16sf)
5917 _mm512_setzero_ps (),
5918 (__mmask16) __U, __R);
5919}
5920
5921#else
5922#define _mm512_cvt_roundepi32_ps(A, B) \
5923 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5924
5925#define _mm512_mask_cvt_roundepi32_ps(W, U, A, B) \
5926 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), W, U, B)
5927
5928#define _mm512_maskz_cvt_roundepi32_ps(U, A, B) \
5929 (__m512)__builtin_ia32_cvtdq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5930
5931#define _mm512_cvt_roundepu32_ps(A, B) \
5932 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
5933
5934#define _mm512_mask_cvt_roundepu32_ps(W, U, A, B) \
5935 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), W, U, B)
5936
5937#define _mm512_maskz_cvt_roundepu32_ps(U, A, B) \
5938 (__m512)__builtin_ia32_cvtudq2ps512_mask((__v16si)(A), (__v16sf)_mm512_setzero_ps(), U, B)
5939#endif
5940
5941#ifdef __OPTIMIZE__
5942extern __inline __m256d
5943__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5944_mm512_extractf64x4_pd (__m512d __A, const int __imm)
5945{
5946 return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5947 __imm,
5948 (__v4df)
5949 _mm256_undefined_pd (),
5950 (__mmask8) -1);
5951}
5952
5953extern __inline __m256d
5954__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5956 const int __imm)
5957{
5958 return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5959 __imm,
5960 (__v4df) __W,
5961 (__mmask8) __U);
5962}
5963
5964extern __inline __m256d
5965__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5966_mm512_maskz_extractf64x4_pd (__mmask8 __U, __m512d __A, const int __imm)
5967{
5968 return (__m256d) __builtin_ia32_extractf64x4_mask ((__v8df) __A,
5969 __imm,
5970 (__v4df)
5971 _mm256_setzero_pd (),
5972 (__mmask8) __U);
5973}
5974
5975extern __inline __m128
5976__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5977_mm512_extractf32x4_ps (__m512 __A, const int __imm)
5978{
5979 return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
5980 __imm,
5981 (__v4sf)
5982 _mm_undefined_ps (),
5983 (__mmask8) -1);
5984}
5985
5986extern __inline __m128
5987__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5989 const int __imm)
5990{
5991 return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
5992 __imm,
5993 (__v4sf) __W,
5994 (__mmask8) __U);
5995}
5996
5997extern __inline __m128
5998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
5999_mm512_maskz_extractf32x4_ps (__mmask8 __U, __m512 __A, const int __imm)
6000{
6001 return (__m128) __builtin_ia32_extractf32x4_mask ((__v16sf) __A,
6002 __imm,
6003 (__v4sf)
6004 _mm_setzero_ps (),
6005 (__mmask8) __U);
6006}
6007
6008extern __inline __m256i
6009__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6010_mm512_extracti64x4_epi64 (__m512i __A, const int __imm)
6011{
6012 return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
6013 __imm,
6014 (__v4di)
6015 _mm256_undefined_si256 (),
6016 (__mmask8) -1);
6017}
6018
6019extern __inline __m256i
6020__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6022 const int __imm)
6023{
6024 return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
6025 __imm,
6026 (__v4di) __W,
6027 (__mmask8) __U);
6028}
6029
6030extern __inline __m256i
6031__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6032_mm512_maskz_extracti64x4_epi64 (__mmask8 __U, __m512i __A, const int __imm)
6033{
6034 return (__m256i) __builtin_ia32_extracti64x4_mask ((__v8di) __A,
6035 __imm,
6036 (__v4di)
6037 _mm256_setzero_si256 (),
6038 (__mmask8) __U);
6039}
6040
6041extern __inline __m128i
6042__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6043_mm512_extracti32x4_epi32 (__m512i __A, const int __imm)
6044{
6045 return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
6046 __imm,
6047 (__v4si)
6048 _mm_undefined_si128 (),
6049 (__mmask8) -1);
6050}
6051
6052extern __inline __m128i
6053__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6055 const int __imm)
6056{
6057 return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
6058 __imm,
6059 (__v4si) __W,
6060 (__mmask8) __U);
6061}
6062
6063extern __inline __m128i
6064__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6065_mm512_maskz_extracti32x4_epi32 (__mmask8 __U, __m512i __A, const int __imm)
6066{
6067 return (__m128i) __builtin_ia32_extracti32x4_mask ((__v16si) __A,
6068 __imm,
6069 (__v4si)
6070 _mm_setzero_si128 (),
6071 (__mmask8) __U);
6072}
6073#else
6074
6075#define _mm512_extractf64x4_pd(X, C) \
6076 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
6077 (int) (C),\
6078 (__v4df)(__m256d)_mm256_undefined_pd(),\
6079 (__mmask8)-1))
6080
6081#define _mm512_mask_extractf64x4_pd(W, U, X, C) \
6082 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
6083 (int) (C),\
6084 (__v4df)(__m256d)(W),\
6085 (__mmask8)(U)))
6086
6087#define _mm512_maskz_extractf64x4_pd(U, X, C) \
6088 ((__m256d) __builtin_ia32_extractf64x4_mask ((__v8df)(__m512d) (X), \
6089 (int) (C),\
6090 (__v4df)(__m256d)_mm256_setzero_pd(),\
6091 (__mmask8)(U)))
6092
6093#define _mm512_extractf32x4_ps(X, C) \
6094 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
6095 (int) (C),\
6096 (__v4sf)(__m128)_mm_undefined_ps(),\
6097 (__mmask8)-1))
6098
6099#define _mm512_mask_extractf32x4_ps(W, U, X, C) \
6100 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
6101 (int) (C),\
6102 (__v4sf)(__m128)(W),\
6103 (__mmask8)(U)))
6104
6105#define _mm512_maskz_extractf32x4_ps(U, X, C) \
6106 ((__m128) __builtin_ia32_extractf32x4_mask ((__v16sf)(__m512) (X), \
6107 (int) (C),\
6108 (__v4sf)(__m128)_mm_setzero_ps(),\
6109 (__mmask8)(U)))
6110
6111#define _mm512_extracti64x4_epi64(X, C) \
6112 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
6113 (int) (C),\
6114 (__v4di)(__m256i)_mm256_undefined_si256 (),\
6115 (__mmask8)-1))
6116
6117#define _mm512_mask_extracti64x4_epi64(W, U, X, C) \
6118 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
6119 (int) (C),\
6120 (__v4di)(__m256i)(W),\
6121 (__mmask8)(U)))
6122
6123#define _mm512_maskz_extracti64x4_epi64(U, X, C) \
6124 ((__m256i) __builtin_ia32_extracti64x4_mask ((__v8di)(__m512i) (X), \
6125 (int) (C),\
6126 (__v4di)(__m256i)_mm256_setzero_si256 (),\
6127 (__mmask8)(U)))
6128
6129#define _mm512_extracti32x4_epi32(X, C) \
6130 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
6131 (int) (C),\
6132 (__v4si)(__m128i)_mm_undefined_si128 (),\
6133 (__mmask8)-1))
6134
6135#define _mm512_mask_extracti32x4_epi32(W, U, X, C) \
6136 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
6137 (int) (C),\
6138 (__v4si)(__m128i)(W),\
6139 (__mmask8)(U)))
6140
6141#define _mm512_maskz_extracti32x4_epi32(U, X, C) \
6142 ((__m128i) __builtin_ia32_extracti32x4_mask ((__v16si)(__m512i) (X), \
6143 (int) (C),\
6144 (__v4si)(__m128i)_mm_setzero_si128 (),\
6145 (__mmask8)(U)))
6146#endif
6147
6148#ifdef __OPTIMIZE__
6149extern __inline __m512i
6150__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6151_mm512_inserti32x4 (__m512i __A, __m128i __B, const int __imm)
6152{
6153 return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __A,
6154 (__v4si) __B,
6155 __imm,
6156 (__v16si) __A, -1);
6157}
6158
6159extern __inline __m512
6160__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6161_mm512_insertf32x4 (__m512 __A, __m128 __B, const int __imm)
6162{
6163 return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __A,
6164 (__v4sf) __B,
6165 __imm,
6166 (__v16sf) __A, -1);
6167}
6168
6169extern __inline __m512i
6170__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6171_mm512_inserti64x4 (__m512i __A, __m256i __B, const int __imm)
6172{
6173 return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6174 (__v4di) __B,
6175 __imm,
6176 (__v8di)
6177 _mm512_undefined_epi32 (),
6178 (__mmask8) -1);
6179}
6180
6181extern __inline __m512i
6182__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6183_mm512_mask_inserti64x4 (__m512i __W, __mmask8 __U, __m512i __A,
6184 __m256i __B, const int __imm)
6185{
6186 return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6187 (__v4di) __B,
6188 __imm,
6189 (__v8di) __W,
6190 (__mmask8) __U);
6191}
6192
6193extern __inline __m512i
6194__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6195_mm512_maskz_inserti64x4 (__mmask8 __U, __m512i __A, __m256i __B,
6196 const int __imm)
6197{
6198 return (__m512i) __builtin_ia32_inserti64x4_mask ((__v8di) __A,
6199 (__v4di) __B,
6200 __imm,
6201 (__v8di)
6202 _mm512_setzero_si512 (),
6203 (__mmask8) __U);
6204}
6205
6206extern __inline __m512d
6207__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6208_mm512_insertf64x4 (__m512d __A, __m256d __B, const int __imm)
6209{
6210 return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6211 (__v4df) __B,
6212 __imm,
6213 (__v8df)
6214 _mm512_undefined_pd (),
6215 (__mmask8) -1);
6216}
6217
6218extern __inline __m512d
6219__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6220_mm512_mask_insertf64x4 (__m512d __W, __mmask8 __U, __m512d __A,
6221 __m256d __B, const int __imm)
6222{
6223 return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6224 (__v4df) __B,
6225 __imm,
6226 (__v8df) __W,
6227 (__mmask8) __U);
6228}
6229
6230extern __inline __m512d
6231__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6232_mm512_maskz_insertf64x4 (__mmask8 __U, __m512d __A, __m256d __B,
6233 const int __imm)
6234{
6235 return (__m512d) __builtin_ia32_insertf64x4_mask ((__v8df) __A,
6236 (__v4df) __B,
6237 __imm,
6238 (__v8df)
6239 _mm512_setzero_pd (),
6240 (__mmask8) __U);
6241}
6242#else
6243#define _mm512_insertf32x4(X, Y, C) \
6244 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
6245 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (X), (__mmask16)(-1)))
6246
6247#define _mm512_inserti32x4(X, Y, C) \
6248 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
6249 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (X), (__mmask16)(-1)))
6250
6251#define _mm512_insertf64x4(X, Y, C) \
6252 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
6253 (__v4df)(__m256d) (Y), (int) (C), \
6254 (__v8df)(__m512d)_mm512_undefined_pd(), \
6255 (__mmask8)-1))
6256
6257#define _mm512_mask_insertf64x4(W, U, X, Y, C) \
6258 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
6259 (__v4df)(__m256d) (Y), (int) (C), \
6260 (__v8df)(__m512d)(W), \
6261 (__mmask8)(U)))
6262
6263#define _mm512_maskz_insertf64x4(U, X, Y, C) \
6264 ((__m512d) __builtin_ia32_insertf64x4_mask ((__v8df)(__m512d) (X), \
6265 (__v4df)(__m256d) (Y), (int) (C), \
6266 (__v8df)(__m512d)_mm512_setzero_pd(), \
6267 (__mmask8)(U)))
6268
6269#define _mm512_inserti64x4(X, Y, C) \
6270 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
6271 (__v4di)(__m256i) (Y), (int) (C), \
6272 (__v8di)(__m512i)_mm512_undefined_epi32 (), \
6273 (__mmask8)-1))
6274
6275#define _mm512_mask_inserti64x4(W, U, X, Y, C) \
6276 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
6277 (__v4di)(__m256i) (Y), (int) (C),\
6278 (__v8di)(__m512i)(W),\
6279 (__mmask8)(U)))
6280
6281#define _mm512_maskz_inserti64x4(U, X, Y, C) \
6282 ((__m512i) __builtin_ia32_inserti64x4_mask ((__v8di)(__m512i) (X), \
6283 (__v4di)(__m256i) (Y), (int) (C), \
6284 (__v8di)(__m512i)_mm512_setzero_si512 (), \
6285 (__mmask8)(U)))
6286#endif
6287
6288extern __inline __m512d
6289__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6290_mm512_loadu_pd (void const *__P)
6291{
6292 return *(__m512d_u *)__P;
6293}
6294
6295extern __inline __m512d
6296__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6297_mm512_mask_loadu_pd (__m512d __W, __mmask8 __U, void const *__P)
6298{
6299 return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
6300 (__v8df) __W,
6301 (__mmask8) __U);
6302}
6303
6304extern __inline __m512d
6305__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6306_mm512_maskz_loadu_pd (__mmask8 __U, void const *__P)
6307{
6308 return (__m512d) __builtin_ia32_loadupd512_mask ((const double *) __P,
6309 (__v8df)
6310 _mm512_setzero_pd (),
6311 (__mmask8) __U);
6312}
6313
6314extern __inline void
6315__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6316_mm512_storeu_pd (void *__P, __m512d __A)
6317{
6318 *(__m512d_u *)__P = __A;
6319}
6320
6321extern __inline void
6322__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6323_mm512_mask_storeu_pd (void *__P, __mmask8 __U, __m512d __A)
6324{
6325 __builtin_ia32_storeupd512_mask ((double *) __P, (__v8df) __A,
6326 (__mmask8) __U);
6327}
6328
6329extern __inline __m512
6330__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6331_mm512_loadu_ps (void const *__P)
6332{
6333 return *(__m512_u *)__P;
6334}
6335
6336extern __inline __m512
6337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6338_mm512_mask_loadu_ps (__m512 __W, __mmask16 __U, void const *__P)
6339{
6340 return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
6341 (__v16sf) __W,
6342 (__mmask16) __U);
6343}
6344
6345extern __inline __m512
6346__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6347_mm512_maskz_loadu_ps (__mmask16 __U, void const *__P)
6348{
6349 return (__m512) __builtin_ia32_loadups512_mask ((const float *) __P,
6350 (__v16sf)
6351 _mm512_setzero_ps (),
6352 (__mmask16) __U);
6353}
6354
6355extern __inline void
6356__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6357_mm512_storeu_ps (void *__P, __m512 __A)
6358{
6359 *(__m512_u *)__P = __A;
6360}
6361
6362extern __inline void
6363__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6364_mm512_mask_storeu_ps (void *__P, __mmask16 __U, __m512 __A)
6365{
6366 __builtin_ia32_storeups512_mask ((float *) __P, (__v16sf) __A,
6367 (__mmask16) __U);
6368}
6369
6370extern __inline __m128
6371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6372_mm_mask_load_ss (__m128 __W, __mmask8 __U, const float *__P)
6373{
6374 return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) __W, __U);
6375}
6376
6377extern __inline __m128
6378__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6379_mm_maskz_load_ss (__mmask8 __U, const float *__P)
6380{
6381 return (__m128) __builtin_ia32_loadss_mask (__P, (__v4sf) _mm_setzero_ps (),
6382 __U);
6383}
6384
6385extern __inline __m128d
6386__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6387_mm_mask_load_sd (__m128d __W, __mmask8 __U, const double *__P)
6388{
6389 return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) __W, __U);
6390}
6391
6392extern __inline __m128d
6393__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6394_mm_maskz_load_sd (__mmask8 __U, const double *__P)
6395{
6396 return (__m128d) __builtin_ia32_loadsd_mask (__P, (__v2df) _mm_setzero_pd (),
6397 __U);
6398}
6399
6400extern __inline __m128
6401__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6402_mm_mask_move_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
6403{
6404 return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
6405 (__v4sf) __W, __U);
6406}
6407
6408extern __inline __m128
6409__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6410_mm_maskz_move_ss (__mmask8 __U, __m128 __A, __m128 __B)
6411{
6412 return (__m128) __builtin_ia32_movess_mask ((__v4sf) __A, (__v4sf) __B,
6413 (__v4sf) _mm_setzero_ps (), __U);
6414}
6415
6416extern __inline __m128d
6417__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6418_mm_mask_move_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
6419{
6420 return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
6421 (__v2df) __W, __U);
6422}
6423
6424extern __inline __m128d
6425__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6426_mm_maskz_move_sd (__mmask8 __U, __m128d __A, __m128d __B)
6427{
6428 return (__m128d) __builtin_ia32_movesd_mask ((__v2df) __A, (__v2df) __B,
6429 (__v2df) _mm_setzero_pd (),
6430 __U);
6431}
6432
6433extern __inline void
6434__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6435_mm_mask_store_ss (float *__P, __mmask8 __U, __m128 __A)
6436{
6437 __builtin_ia32_storess_mask (__P, (__v4sf) __A, (__mmask8) __U);
6438}
6439
6440extern __inline void
6441__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6442_mm_mask_store_sd (double *__P, __mmask8 __U, __m128d __A)
6443{
6444 __builtin_ia32_storesd_mask (__P, (__v2df) __A, (__mmask8) __U);
6445}
6446
6447extern __inline __m512i
6448__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6449_mm512_loadu_epi64 (void const *__P)
6450{
6451 return *(__m512i_u *) __P;
6452}
6453
6454extern __inline __m512i
6455__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6456_mm512_mask_loadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
6457{
6458 return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6459 (__v8di) __W,
6460 (__mmask8) __U);
6461}
6462
6463extern __inline __m512i
6464__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6465_mm512_maskz_loadu_epi64 (__mmask8 __U, void const *__P)
6466{
6467 return (__m512i) __builtin_ia32_loaddqudi512_mask ((const long long *) __P,
6468 (__v8di)
6469 _mm512_setzero_si512 (),
6470 (__mmask8) __U);
6471}
6472
6473extern __inline void
6474__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6475_mm512_storeu_epi64 (void *__P, __m512i __A)
6476{
6477 *(__m512i_u *) __P = (__m512i_u) __A;
6478}
6479
6480extern __inline void
6481__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6482_mm512_mask_storeu_epi64 (void *__P, __mmask8 __U, __m512i __A)
6483{
6484 __builtin_ia32_storedqudi512_mask ((long long *) __P, (__v8di) __A,
6485 (__mmask8) __U);
6486}
6487
6488extern __inline __m512i
6489__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6490_mm512_loadu_si512 (void const *__P)
6491{
6492 return *(__m512i_u *)__P;
6493}
6494
6495extern __inline __m512i
6496__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6497_mm512_loadu_epi32 (void const *__P)
6498{
6499 return *(__m512i_u *) __P;
6500}
6501
6502extern __inline __m512i
6503__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6504_mm512_mask_loadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
6505{
6506 return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6507 (__v16si) __W,
6508 (__mmask16) __U);
6509}
6510
6511extern __inline __m512i
6512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6513_mm512_maskz_loadu_epi32 (__mmask16 __U, void const *__P)
6514{
6515 return (__m512i) __builtin_ia32_loaddqusi512_mask ((const int *) __P,
6516 (__v16si)
6517 _mm512_setzero_si512 (),
6518 (__mmask16) __U);
6519}
6520
6521extern __inline void
6522__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6523_mm512_storeu_si512 (void *__P, __m512i __A)
6524{
6525 *(__m512i_u *)__P = __A;
6526}
6527
6528extern __inline void
6529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6530_mm512_storeu_epi32 (void *__P, __m512i __A)
6531{
6532 *(__m512i_u *) __P = (__m512i_u) __A;
6533}
6534
6535extern __inline void
6536__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6537_mm512_mask_storeu_epi32 (void *__P, __mmask16 __U, __m512i __A)
6538{
6539 __builtin_ia32_storedqusi512_mask ((int *) __P, (__v16si) __A,
6540 (__mmask16) __U);
6541}
6542
6543extern __inline __m512d
6544__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6545_mm512_permutevar_pd (__m512d __A, __m512i __C)
6546{
6547 return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6548 (__v8di) __C,
6549 (__v8df)
6550 _mm512_undefined_pd (),
6551 (__mmask8) -1);
6552}
6553
6554extern __inline __m512d
6555__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6556_mm512_mask_permutevar_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512i __C)
6557{
6558 return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6559 (__v8di) __C,
6560 (__v8df) __W,
6561 (__mmask8) __U);
6562}
6563
6564extern __inline __m512d
6565__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6566_mm512_maskz_permutevar_pd (__mmask8 __U, __m512d __A, __m512i __C)
6567{
6568 return (__m512d) __builtin_ia32_vpermilvarpd512_mask ((__v8df) __A,
6569 (__v8di) __C,
6570 (__v8df)
6571 _mm512_setzero_pd (),
6572 (__mmask8) __U);
6573}
6574
6575extern __inline __m512
6576__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6577_mm512_permutevar_ps (__m512 __A, __m512i __C)
6578{
6579 return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6580 (__v16si) __C,
6581 (__v16sf)
6582 _mm512_undefined_ps (),
6583 (__mmask16) -1);
6584}
6585
6586extern __inline __m512
6587__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6588_mm512_mask_permutevar_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512i __C)
6589{
6590 return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6591 (__v16si) __C,
6592 (__v16sf) __W,
6593 (__mmask16) __U);
6594}
6595
6596extern __inline __m512
6597__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6598_mm512_maskz_permutevar_ps (__mmask16 __U, __m512 __A, __m512i __C)
6599{
6600 return (__m512) __builtin_ia32_vpermilvarps512_mask ((__v16sf) __A,
6601 (__v16si) __C,
6602 (__v16sf)
6603 _mm512_setzero_ps (),
6604 (__mmask16) __U);
6605}
6606
6607extern __inline __m512i
6608__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6609_mm512_permutex2var_epi64 (__m512i __A, __m512i __I, __m512i __B)
6610{
6611 return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6612 /* idx */ ,
6613 (__v8di) __A,
6614 (__v8di) __B,
6615 (__mmask8) -1);
6616}
6617
6618extern __inline __m512i
6619__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6620_mm512_mask_permutex2var_epi64 (__m512i __A, __mmask8 __U, __m512i __I,
6621 __m512i __B)
6622{
6623 return (__m512i) __builtin_ia32_vpermt2varq512_mask ((__v8di) __I
6624 /* idx */ ,
6625 (__v8di) __A,
6626 (__v8di) __B,
6627 (__mmask8) __U);
6628}
6629
6630extern __inline __m512i
6631__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6632_mm512_mask2_permutex2var_epi64 (__m512i __A, __m512i __I,
6633 __mmask8 __U, __m512i __B)
6634{
6635 return (__m512i) __builtin_ia32_vpermi2varq512_mask ((__v8di) __A,
6636 (__v8di) __I
6637 /* idx */ ,
6638 (__v8di) __B,
6639 (__mmask8) __U);
6640}
6641
6642extern __inline __m512i
6643__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6644_mm512_maskz_permutex2var_epi64 (__mmask8 __U, __m512i __A,
6645 __m512i __I, __m512i __B)
6646{
6647 return (__m512i) __builtin_ia32_vpermt2varq512_maskz ((__v8di) __I
6648 /* idx */ ,
6649 (__v8di) __A,
6650 (__v8di) __B,
6651 (__mmask8) __U);
6652}
6653
6654extern __inline __m512i
6655__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6656_mm512_permutex2var_epi32 (__m512i __A, __m512i __I, __m512i __B)
6657{
6658 return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6659 /* idx */ ,
6660 (__v16si) __A,
6661 (__v16si) __B,
6662 (__mmask16) -1);
6663}
6664
6665extern __inline __m512i
6666__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6667_mm512_mask_permutex2var_epi32 (__m512i __A, __mmask16 __U,
6668 __m512i __I, __m512i __B)
6669{
6670 return (__m512i) __builtin_ia32_vpermt2vard512_mask ((__v16si) __I
6671 /* idx */ ,
6672 (__v16si) __A,
6673 (__v16si) __B,
6674 (__mmask16) __U);
6675}
6676
6677extern __inline __m512i
6678__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6679_mm512_mask2_permutex2var_epi32 (__m512i __A, __m512i __I,
6680 __mmask16 __U, __m512i __B)
6681{
6682 return (__m512i) __builtin_ia32_vpermi2vard512_mask ((__v16si) __A,
6683 (__v16si) __I
6684 /* idx */ ,
6685 (__v16si) __B,
6686 (__mmask16) __U);
6687}
6688
6689extern __inline __m512i
6690__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6691_mm512_maskz_permutex2var_epi32 (__mmask16 __U, __m512i __A,
6692 __m512i __I, __m512i __B)
6693{
6694 return (__m512i) __builtin_ia32_vpermt2vard512_maskz ((__v16si) __I
6695 /* idx */ ,
6696 (__v16si) __A,
6697 (__v16si) __B,
6698 (__mmask16) __U);
6699}
6700
6701extern __inline __m512d
6702__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6703_mm512_permutex2var_pd (__m512d __A, __m512i __I, __m512d __B)
6704{
6705 return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6706 /* idx */ ,
6707 (__v8df) __A,
6708 (__v8df) __B,
6709 (__mmask8) -1);
6710}
6711
6712extern __inline __m512d
6713__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6714_mm512_mask_permutex2var_pd (__m512d __A, __mmask8 __U, __m512i __I,
6715 __m512d __B)
6716{
6717 return (__m512d) __builtin_ia32_vpermt2varpd512_mask ((__v8di) __I
6718 /* idx */ ,
6719 (__v8df) __A,
6720 (__v8df) __B,
6721 (__mmask8) __U);
6722}
6723
6724extern __inline __m512d
6725__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6726_mm512_mask2_permutex2var_pd (__m512d __A, __m512i __I, __mmask8 __U,
6727 __m512d __B)
6728{
6729 return (__m512d) __builtin_ia32_vpermi2varpd512_mask ((__v8df) __A,
6730 (__v8di) __I
6731 /* idx */ ,
6732 (__v8df) __B,
6733 (__mmask8) __U);
6734}
6735
6736extern __inline __m512d
6737__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6738_mm512_maskz_permutex2var_pd (__mmask8 __U, __m512d __A, __m512i __I,
6739 __m512d __B)
6740{
6741 return (__m512d) __builtin_ia32_vpermt2varpd512_maskz ((__v8di) __I
6742 /* idx */ ,
6743 (__v8df) __A,
6744 (__v8df) __B,
6745 (__mmask8) __U);
6746}
6747
6748extern __inline __m512
6749__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6750_mm512_permutex2var_ps (__m512 __A, __m512i __I, __m512 __B)
6751{
6752 return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6753 /* idx */ ,
6754 (__v16sf) __A,
6755 (__v16sf) __B,
6756 (__mmask16) -1);
6757}
6758
6759extern __inline __m512
6760__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6761_mm512_mask_permutex2var_ps (__m512 __A, __mmask16 __U, __m512i __I, __m512 __B)
6762{
6763 return (__m512) __builtin_ia32_vpermt2varps512_mask ((__v16si) __I
6764 /* idx */ ,
6765 (__v16sf) __A,
6766 (__v16sf) __B,
6767 (__mmask16) __U);
6768}
6769
6770extern __inline __m512
6771__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6772_mm512_mask2_permutex2var_ps (__m512 __A, __m512i __I, __mmask16 __U,
6773 __m512 __B)
6774{
6775 return (__m512) __builtin_ia32_vpermi2varps512_mask ((__v16sf) __A,
6776 (__v16si) __I
6777 /* idx */ ,
6778 (__v16sf) __B,
6779 (__mmask16) __U);
6780}
6781
6782extern __inline __m512
6783__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6784_mm512_maskz_permutex2var_ps (__mmask16 __U, __m512 __A, __m512i __I,
6785 __m512 __B)
6786{
6787 return (__m512) __builtin_ia32_vpermt2varps512_maskz ((__v16si) __I
6788 /* idx */ ,
6789 (__v16sf) __A,
6790 (__v16sf) __B,
6791 (__mmask16) __U);
6792}
6793
6794#ifdef __OPTIMIZE__
6795extern __inline __m512d
6796__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6797_mm512_permute_pd (__m512d __X, const int __C)
6798{
6799 return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6800 (__v8df)
6801 _mm512_undefined_pd (),
6802 (__mmask8) -1);
6803}
6804
6805extern __inline __m512d
6806__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6807_mm512_mask_permute_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __C)
6808{
6809 return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6810 (__v8df) __W,
6811 (__mmask8) __U);
6812}
6813
6814extern __inline __m512d
6815__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6816_mm512_maskz_permute_pd (__mmask8 __U, __m512d __X, const int __C)
6817{
6818 return (__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df) __X, __C,
6819 (__v8df)
6820 _mm512_setzero_pd (),
6821 (__mmask8) __U);
6822}
6823
6824extern __inline __m512
6825__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6826_mm512_permute_ps (__m512 __X, const int __C)
6827{
6828 return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6829 (__v16sf)
6830 _mm512_undefined_ps (),
6831 (__mmask16) -1);
6832}
6833
6834extern __inline __m512
6835__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6836_mm512_mask_permute_ps (__m512 __W, __mmask16 __U, __m512 __X, const int __C)
6837{
6838 return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6839 (__v16sf) __W,
6840 (__mmask16) __U);
6841}
6842
6843extern __inline __m512
6844__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6845_mm512_maskz_permute_ps (__mmask16 __U, __m512 __X, const int __C)
6846{
6847 return (__m512) __builtin_ia32_vpermilps512_mask ((__v16sf) __X, __C,
6848 (__v16sf)
6849 _mm512_setzero_ps (),
6850 (__mmask16) __U);
6851}
6852#else
6853#define _mm512_permute_pd(X, C) \
6854 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6855 (__v8df)(__m512d)_mm512_undefined_pd(),\
6856 (__mmask8)(-1)))
6857
6858#define _mm512_mask_permute_pd(W, U, X, C) \
6859 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6860 (__v8df)(__m512d)(W), \
6861 (__mmask8)(U)))
6862
6863#define _mm512_maskz_permute_pd(U, X, C) \
6864 ((__m512d) __builtin_ia32_vpermilpd512_mask ((__v8df)(__m512d)(X), (int)(C), \
6865 (__v8df)(__m512d)_mm512_setzero_pd(), \
6866 (__mmask8)(U)))
6867
6868#define _mm512_permute_ps(X, C) \
6869 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6870 (__v16sf)(__m512)_mm512_undefined_ps(),\
6871 (__mmask16)(-1)))
6872
6873#define _mm512_mask_permute_ps(W, U, X, C) \
6874 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6875 (__v16sf)(__m512)(W), \
6876 (__mmask16)(U)))
6877
6878#define _mm512_maskz_permute_ps(U, X, C) \
6879 ((__m512) __builtin_ia32_vpermilps512_mask ((__v16sf)(__m512)(X), (int)(C), \
6880 (__v16sf)(__m512)_mm512_setzero_ps(), \
6881 (__mmask16)(U)))
6882#endif
6883
6884#ifdef __OPTIMIZE__
6885extern __inline __m512i
6886__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6887_mm512_permutex_epi64 (__m512i __X, const int __I)
6888{
6889 return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6890 (__v8di)
6891 _mm512_undefined_epi32 (),
6892 (__mmask8) (-1));
6893}
6894
6895extern __inline __m512i
6896__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6898 __m512i __X, const int __I)
6899{
6900 return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6901 (__v8di) __W,
6902 (__mmask8) __M);
6903}
6904
6905extern __inline __m512i
6906__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6907_mm512_maskz_permutex_epi64 (__mmask8 __M, __m512i __X, const int __I)
6908{
6909 return (__m512i) __builtin_ia32_permdi512_mask ((__v8di) __X, __I,
6910 (__v8di)
6911 _mm512_setzero_si512 (),
6912 (__mmask8) __M);
6913}
6914
6915extern __inline __m512d
6916__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6917_mm512_permutex_pd (__m512d __X, const int __M)
6918{
6919 return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6920 (__v8df)
6921 _mm512_undefined_pd (),
6922 (__mmask8) -1);
6923}
6924
6925extern __inline __m512d
6926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6927_mm512_mask_permutex_pd (__m512d __W, __mmask8 __U, __m512d __X, const int __M)
6928{
6929 return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6930 (__v8df) __W,
6931 (__mmask8) __U);
6932}
6933
6934extern __inline __m512d
6935__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6936_mm512_maskz_permutex_pd (__mmask8 __U, __m512d __X, const int __M)
6937{
6938 return (__m512d) __builtin_ia32_permdf512_mask ((__v8df) __X, __M,
6939 (__v8df)
6940 _mm512_setzero_pd (),
6941 (__mmask8) __U);
6942}
6943#else
6944#define _mm512_permutex_pd(X, M) \
6945 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6946 (__v8df)(__m512d)_mm512_undefined_pd(),\
6947 (__mmask8)-1))
6948
6949#define _mm512_mask_permutex_pd(W, U, X, M) \
6950 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6951 (__v8df)(__m512d)(W), (__mmask8)(U)))
6952
6953#define _mm512_maskz_permutex_pd(U, X, M) \
6954 ((__m512d) __builtin_ia32_permdf512_mask ((__v8df)(__m512d)(X), (int)(M), \
6955 (__v8df)(__m512d)_mm512_setzero_pd(),\
6956 (__mmask8)(U)))
6957
6958#define _mm512_permutex_epi64(X, I) \
6959 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6960 (int)(I), \
6961 (__v8di)(__m512i) \
6962 (_mm512_undefined_epi32 ()),\
6963 (__mmask8)(-1)))
6964
6965#define _mm512_maskz_permutex_epi64(M, X, I) \
6966 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6967 (int)(I), \
6968 (__v8di)(__m512i) \
6969 (_mm512_setzero_si512 ()),\
6970 (__mmask8)(M)))
6971
6972#define _mm512_mask_permutex_epi64(W, M, X, I) \
6973 ((__m512i) __builtin_ia32_permdi512_mask ((__v8di)(__m512i)(X), \
6974 (int)(I), \
6975 (__v8di)(__m512i)(W), \
6976 (__mmask8)(M)))
6977#endif
6978
6979extern __inline __m512i
6980__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6981_mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
6982{
6983 return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6984 (__v8di) __X,
6985 (__v8di)
6986 _mm512_setzero_si512 (),
6987 __M);
6988}
6989
6990extern __inline __m512i
6991__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
6992_mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
6993{
6994 return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
6995 (__v8di) __X,
6996 (__v8di)
6997 _mm512_undefined_epi32 (),
6998 (__mmask8) -1);
6999}
7000
7001extern __inline __m512i
7002__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7003_mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
7004 __m512i __Y)
7005{
7006 return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
7007 (__v8di) __X,
7008 (__v8di) __W,
7009 __M);
7010}
7011
7012extern __inline __m512i
7013__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7014_mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
7015{
7016 return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
7017 (__v16si) __X,
7018 (__v16si)
7019 _mm512_setzero_si512 (),
7020 __M);
7021}
7022
7023extern __inline __m512i
7024__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7025_mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
7026{
7027 return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
7028 (__v16si) __X,
7029 (__v16si)
7030 _mm512_undefined_epi32 (),
7031 (__mmask16) -1);
7032}
7033
7034extern __inline __m512i
7035__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7036_mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
7037 __m512i __Y)
7038{
7039 return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
7040 (__v16si) __X,
7041 (__v16si) __W,
7042 __M);
7043}
7044
7045extern __inline __m512d
7046__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7047_mm512_permutexvar_pd (__m512i __X, __m512d __Y)
7048{
7049 return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
7050 (__v8di) __X,
7051 (__v8df)
7052 _mm512_undefined_pd (),
7053 (__mmask8) -1);
7054}
7055
7056extern __inline __m512d
7057__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7058_mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
7059{
7060 return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
7061 (__v8di) __X,
7062 (__v8df) __W,
7063 (__mmask8) __U);
7064}
7065
7066extern __inline __m512d
7067__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7068_mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
7069{
7070 return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
7071 (__v8di) __X,
7072 (__v8df)
7073 _mm512_setzero_pd (),
7074 (__mmask8) __U);
7075}
7076
7077extern __inline __m512
7078__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7079_mm512_permutexvar_ps (__m512i __X, __m512 __Y)
7080{
7081 return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
7082 (__v16si) __X,
7083 (__v16sf)
7084 _mm512_undefined_ps (),
7085 (__mmask16) -1);
7086}
7087
7088extern __inline __m512
7089__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7090_mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
7091{
7092 return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
7093 (__v16si) __X,
7094 (__v16sf) __W,
7095 (__mmask16) __U);
7096}
7097
7098extern __inline __m512
7099__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7100_mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
7101{
7102 return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
7103 (__v16si) __X,
7104 (__v16sf)
7105 _mm512_setzero_ps (),
7106 (__mmask16) __U);
7107}
7108
7109#ifdef __OPTIMIZE__
7110extern __inline __m512
7111__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7112_mm512_shuffle_ps (__m512 __M, __m512 __V, const int __imm)
7113{
7114 return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7115 (__v16sf) __V, __imm,
7116 (__v16sf)
7117 _mm512_undefined_ps (),
7118 (__mmask16) -1);
7119}
7120
7121extern __inline __m512
7122__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7123_mm512_mask_shuffle_ps (__m512 __W, __mmask16 __U, __m512 __M,
7124 __m512 __V, const int __imm)
7125{
7126 return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7127 (__v16sf) __V, __imm,
7128 (__v16sf) __W,
7129 (__mmask16) __U);
7130}
7131
7132extern __inline __m512
7133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7134_mm512_maskz_shuffle_ps (__mmask16 __U, __m512 __M, __m512 __V, const int __imm)
7135{
7136 return (__m512) __builtin_ia32_shufps512_mask ((__v16sf) __M,
7137 (__v16sf) __V, __imm,
7138 (__v16sf)
7139 _mm512_setzero_ps (),
7140 (__mmask16) __U);
7141}
7142
7143extern __inline __m512d
7144__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7145_mm512_shuffle_pd (__m512d __M, __m512d __V, const int __imm)
7146{
7147 return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7148 (__v8df) __V, __imm,
7149 (__v8df)
7150 _mm512_undefined_pd (),
7151 (__mmask8) -1);
7152}
7153
7154extern __inline __m512d
7155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7156_mm512_mask_shuffle_pd (__m512d __W, __mmask8 __U, __m512d __M,
7157 __m512d __V, const int __imm)
7158{
7159 return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7160 (__v8df) __V, __imm,
7161 (__v8df) __W,
7162 (__mmask8) __U);
7163}
7164
7165extern __inline __m512d
7166__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7167_mm512_maskz_shuffle_pd (__mmask8 __U, __m512d __M, __m512d __V,
7168 const int __imm)
7169{
7170 return (__m512d) __builtin_ia32_shufpd512_mask ((__v8df) __M,
7171 (__v8df) __V, __imm,
7172 (__v8df)
7173 _mm512_setzero_pd (),
7174 (__mmask8) __U);
7175}
7176
7177extern __inline __m512d
7178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7179_mm512_fixupimm_round_pd (__m512d __A, __m512d __B, __m512i __C,
7180 const int __imm, const int __R)
7181{
7182 return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7183 (__v8df) __B,
7184 (__v8di) __C,
7185 __imm,
7186 (__mmask8) -1, __R);
7187}
7188
7189extern __inline __m512d
7190__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7192 __m512i __C, const int __imm, const int __R)
7193{
7194 return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
7195 (__v8df) __B,
7196 (__v8di) __C,
7197 __imm,
7198 (__mmask8) __U, __R);
7199}
7200
7201extern __inline __m512d
7202__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7204 __m512i __C, const int __imm, const int __R)
7205{
7206 return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
7207 (__v8df) __B,
7208 (__v8di) __C,
7209 __imm,
7210 (__mmask8) __U, __R);
7211}
7212
7213extern __inline __m512
7214__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7215_mm512_fixupimm_round_ps (__m512 __A, __m512 __B, __m512i __C,
7216 const int __imm, const int __R)
7217{
7218 return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7219 (__v16sf) __B,
7220 (__v16si) __C,
7221 __imm,
7222 (__mmask16) -1, __R);
7223}
7224
7225extern __inline __m512
7226__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7228 __m512i __C, const int __imm, const int __R)
7229{
7230 return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
7231 (__v16sf) __B,
7232 (__v16si) __C,
7233 __imm,
7234 (__mmask16) __U, __R);
7235}
7236
7237extern __inline __m512
7238__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7240 __m512i __C, const int __imm, const int __R)
7241{
7242 return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
7243 (__v16sf) __B,
7244 (__v16si) __C,
7245 __imm,
7246 (__mmask16) __U, __R);
7247}
7248
7249extern __inline __m128d
7250__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7251_mm_fixupimm_round_sd (__m128d __A, __m128d __B, __m128i __C,
7252 const int __imm, const int __R)
7253{
7254 return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7255 (__v2df) __B,
7256 (__v2di) __C, __imm,
7257 (__mmask8) -1, __R);
7258}
7259
7260extern __inline __m128d
7261__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7262_mm_mask_fixupimm_round_sd (__m128d __A, __mmask8 __U, __m128d __B,
7263 __m128i __C, const int __imm, const int __R)
7264{
7265 return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
7266 (__v2df) __B,
7267 (__v2di) __C, __imm,
7268 (__mmask8) __U, __R);
7269}
7270
7271extern __inline __m128d
7272__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7274 __m128i __C, const int __imm, const int __R)
7275{
7276 return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
7277 (__v2df) __B,
7278 (__v2di) __C,
7279 __imm,
7280 (__mmask8) __U, __R);
7281}
7282
7283extern __inline __m128
7284__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7285_mm_fixupimm_round_ss (__m128 __A, __m128 __B, __m128i __C,
7286 const int __imm, const int __R)
7287{
7288 return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7289 (__v4sf) __B,
7290 (__v4si) __C, __imm,
7291 (__mmask8) -1, __R);
7292}
7293
7294extern __inline __m128
7295__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7297 __m128i __C, const int __imm, const int __R)
7298{
7299 return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
7300 (__v4sf) __B,
7301 (__v4si) __C, __imm,
7302 (__mmask8) __U, __R);
7303}
7304
7305extern __inline __m128
7306__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7308 __m128i __C, const int __imm, const int __R)
7309{
7310 return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
7311 (__v4sf) __B,
7312 (__v4si) __C, __imm,
7313 (__mmask8) __U, __R);
7314}
7315
7316#else
7317#define _mm512_shuffle_pd(X, Y, C) \
7318 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
7319 (__v8df)(__m512d)(Y), (int)(C),\
7320 (__v8df)(__m512d)_mm512_undefined_pd(),\
7321 (__mmask8)-1))
7322
7323#define _mm512_mask_shuffle_pd(W, U, X, Y, C) \
7324 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
7325 (__v8df)(__m512d)(Y), (int)(C),\
7326 (__v8df)(__m512d)(W),\
7327 (__mmask8)(U)))
7328
7329#define _mm512_maskz_shuffle_pd(U, X, Y, C) \
7330 ((__m512d)__builtin_ia32_shufpd512_mask ((__v8df)(__m512d)(X), \
7331 (__v8df)(__m512d)(Y), (int)(C),\
7332 (__v8df)(__m512d)_mm512_setzero_pd(),\
7333 (__mmask8)(U)))
7334
7335#define _mm512_shuffle_ps(X, Y, C) \
7336 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
7337 (__v16sf)(__m512)(Y), (int)(C),\
7338 (__v16sf)(__m512)_mm512_undefined_ps(),\
7339 (__mmask16)-1))
7340
7341#define _mm512_mask_shuffle_ps(W, U, X, Y, C) \
7342 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
7343 (__v16sf)(__m512)(Y), (int)(C),\
7344 (__v16sf)(__m512)(W),\
7345 (__mmask16)(U)))
7346
7347#define _mm512_maskz_shuffle_ps(U, X, Y, C) \
7348 ((__m512)__builtin_ia32_shufps512_mask ((__v16sf)(__m512)(X), \
7349 (__v16sf)(__m512)(Y), (int)(C),\
7350 (__v16sf)(__m512)_mm512_setzero_ps(),\
7351 (__mmask16)(U)))
7352
7353#define _mm512_fixupimm_round_pd(X, Y, Z, C, R) \
7354 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
7355 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
7356 (__mmask8)(-1), (R)))
7357
7358#define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R) \
7359 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
7360 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
7361 (__mmask8)(U), (R)))
7362
7363#define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R) \
7364 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
7365 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
7366 (__mmask8)(U), (R)))
7367
7368#define _mm512_fixupimm_round_ps(X, Y, Z, C, R) \
7369 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
7370 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
7371 (__mmask16)(-1), (R)))
7372
7373#define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R) \
7374 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
7375 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
7376 (__mmask16)(U), (R)))
7377
7378#define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R) \
7379 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
7380 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
7381 (__mmask16)(U), (R)))
7382
7383#define _mm_fixupimm_round_sd(X, Y, Z, C, R) \
7384 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
7385 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7386 (__mmask8)(-1), (R)))
7387
7388#define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R) \
7389 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
7390 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7391 (__mmask8)(U), (R)))
7392
7393#define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R) \
7394 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
7395 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
7396 (__mmask8)(U), (R)))
7397
7398#define _mm_fixupimm_round_ss(X, Y, Z, C, R) \
7399 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
7400 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7401 (__mmask8)(-1), (R)))
7402
7403#define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R) \
7404 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
7405 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7406 (__mmask8)(U), (R)))
7407
7408#define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R) \
7409 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
7410 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
7411 (__mmask8)(U), (R)))
7412#endif
7413
7414extern __inline __m512
7415__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7416_mm512_movehdup_ps (__m512 __A)
7417{
7418 return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7419 (__v16sf)
7420 _mm512_undefined_ps (),
7421 (__mmask16) -1);
7422}
7423
7424extern __inline __m512
7425__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7426_mm512_mask_movehdup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7427{
7428 return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7429 (__v16sf) __W,
7430 (__mmask16) __U);
7431}
7432
7433extern __inline __m512
7434__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7435_mm512_maskz_movehdup_ps (__mmask16 __U, __m512 __A)
7436{
7437 return (__m512) __builtin_ia32_movshdup512_mask ((__v16sf) __A,
7438 (__v16sf)
7439 _mm512_setzero_ps (),
7440 (__mmask16) __U);
7441}
7442
7443extern __inline __m512
7444__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7445_mm512_moveldup_ps (__m512 __A)
7446{
7447 return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7448 (__v16sf)
7449 _mm512_undefined_ps (),
7450 (__mmask16) -1);
7451}
7452
7453extern __inline __m512
7454__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7455_mm512_mask_moveldup_ps (__m512 __W, __mmask16 __U, __m512 __A)
7456{
7457 return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7458 (__v16sf) __W,
7459 (__mmask16) __U);
7460}
7461
7462extern __inline __m512
7463__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7464_mm512_maskz_moveldup_ps (__mmask16 __U, __m512 __A)
7465{
7466 return (__m512) __builtin_ia32_movsldup512_mask ((__v16sf) __A,
7467 (__v16sf)
7468 _mm512_setzero_ps (),
7469 (__mmask16) __U);
7470}
7471
7472extern __inline __m512i
7473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7474_mm512_or_si512 (__m512i __A, __m512i __B)
7475{
7476 return (__m512i) ((__v16su) __A | (__v16su) __B);
7477}
7478
7479extern __inline __m512i
7480__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7481_mm512_or_epi32 (__m512i __A, __m512i __B)
7482{
7483 return (__m512i) ((__v16su) __A | (__v16su) __B);
7484}
7485
7486extern __inline __m512i
7487__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7488_mm512_mask_or_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7489{
7490 return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7491 (__v16si) __B,
7492 (__v16si) __W,
7493 (__mmask16) __U);
7494}
7495
7496extern __inline __m512i
7497__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7498_mm512_maskz_or_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7499{
7500 return (__m512i) __builtin_ia32_pord512_mask ((__v16si) __A,
7501 (__v16si) __B,
7502 (__v16si)
7503 _mm512_setzero_si512 (),
7504 (__mmask16) __U);
7505}
7506
7507extern __inline __m512i
7508__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7509_mm512_or_epi64 (__m512i __A, __m512i __B)
7510{
7511 return (__m512i) ((__v8du) __A | (__v8du) __B);
7512}
7513
7514extern __inline __m512i
7515__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7516_mm512_mask_or_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7517{
7518 return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7519 (__v8di) __B,
7520 (__v8di) __W,
7521 (__mmask8) __U);
7522}
7523
7524extern __inline __m512i
7525__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7526_mm512_maskz_or_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7527{
7528 return (__m512i) __builtin_ia32_porq512_mask ((__v8di) __A,
7529 (__v8di) __B,
7530 (__v8di)
7531 _mm512_setzero_si512 (),
7532 (__mmask8) __U);
7533}
7534
7535extern __inline __m512i
7536__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7537_mm512_xor_si512 (__m512i __A, __m512i __B)
7538{
7539 return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7540}
7541
7542extern __inline __m512i
7543__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7544_mm512_xor_epi32 (__m512i __A, __m512i __B)
7545{
7546 return (__m512i) ((__v16su) __A ^ (__v16su) __B);
7547}
7548
7549extern __inline __m512i
7550__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7551_mm512_mask_xor_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7552{
7553 return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7554 (__v16si) __B,
7555 (__v16si) __W,
7556 (__mmask16) __U);
7557}
7558
7559extern __inline __m512i
7560__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7561_mm512_maskz_xor_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7562{
7563 return (__m512i) __builtin_ia32_pxord512_mask ((__v16si) __A,
7564 (__v16si) __B,
7565 (__v16si)
7566 _mm512_setzero_si512 (),
7567 (__mmask16) __U);
7568}
7569
7570extern __inline __m512i
7571__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7572_mm512_xor_epi64 (__m512i __A, __m512i __B)
7573{
7574 return (__m512i) ((__v8du) __A ^ (__v8du) __B);
7575}
7576
7577extern __inline __m512i
7578__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7579_mm512_mask_xor_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7580{
7581 return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7582 (__v8di) __B,
7583 (__v8di) __W,
7584 (__mmask8) __U);
7585}
7586
7587extern __inline __m512i
7588__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7589_mm512_maskz_xor_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7590{
7591 return (__m512i) __builtin_ia32_pxorq512_mask ((__v8di) __A,
7592 (__v8di) __B,
7593 (__v8di)
7594 _mm512_setzero_si512 (),
7595 (__mmask8) __U);
7596}
7597
7598#ifdef __OPTIMIZE__
7599extern __inline __m512i
7600__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7601_mm512_rol_epi32 (__m512i __A, const int __B)
7602{
7603 return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7604 (__v16si)
7605 _mm512_undefined_epi32 (),
7606 (__mmask16) -1);
7607}
7608
7609extern __inline __m512i
7610__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7611_mm512_mask_rol_epi32 (__m512i __W, __mmask16 __U, __m512i __A, const int __B)
7612{
7613 return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7614 (__v16si) __W,
7615 (__mmask16) __U);
7616}
7617
7618extern __inline __m512i
7619__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7620_mm512_maskz_rol_epi32 (__mmask16 __U, __m512i __A, const int __B)
7621{
7622 return (__m512i) __builtin_ia32_prold512_mask ((__v16si) __A, __B,
7623 (__v16si)
7624 _mm512_setzero_si512 (),
7625 (__mmask16) __U);
7626}
7627
7628extern __inline __m512i
7629__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7630_mm512_ror_epi32 (__m512i __A, int __B)
7631{
7632 return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7633 (__v16si)
7634 _mm512_undefined_epi32 (),
7635 (__mmask16) -1);
7636}
7637
7638extern __inline __m512i
7639__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7640_mm512_mask_ror_epi32 (__m512i __W, __mmask16 __U, __m512i __A, int __B)
7641{
7642 return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7643 (__v16si) __W,
7644 (__mmask16) __U);
7645}
7646
7647extern __inline __m512i
7648__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7650{
7651 return (__m512i) __builtin_ia32_prord512_mask ((__v16si) __A, __B,
7652 (__v16si)
7653 _mm512_setzero_si512 (),
7654 (__mmask16) __U);
7655}
7656
7657extern __inline __m512i
7658__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7659_mm512_rol_epi64 (__m512i __A, const int __B)
7660{
7661 return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7662 (__v8di)
7663 _mm512_undefined_epi32 (),
7664 (__mmask8) -1);
7665}
7666
7667extern __inline __m512i
7668__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7669_mm512_mask_rol_epi64 (__m512i __W, __mmask8 __U, __m512i __A, const int __B)
7670{
7671 return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7672 (__v8di) __W,
7673 (__mmask8) __U);
7674}
7675
7676extern __inline __m512i
7677__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7678_mm512_maskz_rol_epi64 (__mmask8 __U, __m512i __A, const int __B)
7679{
7680 return (__m512i) __builtin_ia32_prolq512_mask ((__v8di) __A, __B,
7681 (__v8di)
7682 _mm512_setzero_si512 (),
7683 (__mmask8) __U);
7684}
7685
7686extern __inline __m512i
7687__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7688_mm512_ror_epi64 (__m512i __A, int __B)
7689{
7690 return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7691 (__v8di)
7692 _mm512_undefined_epi32 (),
7693 (__mmask8) -1);
7694}
7695
7696extern __inline __m512i
7697__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7698_mm512_mask_ror_epi64 (__m512i __W, __mmask8 __U, __m512i __A, int __B)
7699{
7700 return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7701 (__v8di) __W,
7702 (__mmask8) __U);
7703}
7704
7705extern __inline __m512i
7706__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7708{
7709 return (__m512i) __builtin_ia32_prorq512_mask ((__v8di) __A, __B,
7710 (__v8di)
7711 _mm512_setzero_si512 (),
7712 (__mmask8) __U);
7713}
7714
7715#else
7716#define _mm512_rol_epi32(A, B) \
7717 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7718 (int)(B), \
7719 (__v16si)_mm512_undefined_epi32 (), \
7720 (__mmask16)(-1)))
7721#define _mm512_mask_rol_epi32(W, U, A, B) \
7722 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7723 (int)(B), \
7724 (__v16si)(__m512i)(W), \
7725 (__mmask16)(U)))
7726#define _mm512_maskz_rol_epi32(U, A, B) \
7727 ((__m512i)__builtin_ia32_prold512_mask ((__v16si)(__m512i)(A), \
7728 (int)(B), \
7729 (__v16si)_mm512_setzero_si512 (), \
7730 (__mmask16)(U)))
7731#define _mm512_ror_epi32(A, B) \
7732 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7733 (int)(B), \
7734 (__v16si)_mm512_undefined_epi32 (), \
7735 (__mmask16)(-1)))
7736#define _mm512_mask_ror_epi32(W, U, A, B) \
7737 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7738 (int)(B), \
7739 (__v16si)(__m512i)(W), \
7740 (__mmask16)(U)))
7741#define _mm512_maskz_ror_epi32(U, A, B) \
7742 ((__m512i)__builtin_ia32_prord512_mask ((__v16si)(__m512i)(A), \
7743 (int)(B), \
7744 (__v16si)_mm512_setzero_si512 (), \
7745 (__mmask16)(U)))
7746#define _mm512_rol_epi64(A, B) \
7747 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7748 (int)(B), \
7749 (__v8di)_mm512_undefined_epi32 (), \
7750 (__mmask8)(-1)))
7751#define _mm512_mask_rol_epi64(W, U, A, B) \
7752 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7753 (int)(B), \
7754 (__v8di)(__m512i)(W), \
7755 (__mmask8)(U)))
7756#define _mm512_maskz_rol_epi64(U, A, B) \
7757 ((__m512i)__builtin_ia32_prolq512_mask ((__v8di)(__m512i)(A), \
7758 (int)(B), \
7759 (__v8di)_mm512_setzero_si512 (), \
7760 (__mmask8)(U)))
7761
7762#define _mm512_ror_epi64(A, B) \
7763 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7764 (int)(B), \
7765 (__v8di)_mm512_undefined_epi32 (), \
7766 (__mmask8)(-1)))
7767#define _mm512_mask_ror_epi64(W, U, A, B) \
7768 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7769 (int)(B), \
7770 (__v8di)(__m512i)(W), \
7771 (__mmask8)(U)))
7772#define _mm512_maskz_ror_epi64(U, A, B) \
7773 ((__m512i)__builtin_ia32_prorq512_mask ((__v8di)(__m512i)(A), \
7774 (int)(B), \
7775 (__v8di)_mm512_setzero_si512 (), \
7776 (__mmask8)(U)))
7777#endif
7778
7779extern __inline __m512i
7780__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7781_mm512_and_si512 (__m512i __A, __m512i __B)
7782{
7783 return (__m512i) ((__v16su) __A & (__v16su) __B);
7784}
7785
7786extern __inline __m512i
7787__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7788_mm512_and_epi32 (__m512i __A, __m512i __B)
7789{
7790 return (__m512i) ((__v16su) __A & (__v16su) __B);
7791}
7792
7793extern __inline __m512i
7794__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7795_mm512_mask_and_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7796{
7797 return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7798 (__v16si) __B,
7799 (__v16si) __W,
7800 (__mmask16) __U);
7801}
7802
7803extern __inline __m512i
7804__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7805_mm512_maskz_and_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7806{
7807 return (__m512i) __builtin_ia32_pandd512_mask ((__v16si) __A,
7808 (__v16si) __B,
7809 (__v16si)
7810 _mm512_setzero_si512 (),
7811 (__mmask16) __U);
7812}
7813
7814extern __inline __m512i
7815__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7816_mm512_and_epi64 (__m512i __A, __m512i __B)
7817{
7818 return (__m512i) ((__v8du) __A & (__v8du) __B);
7819}
7820
7821extern __inline __m512i
7822__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7823_mm512_mask_and_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7824{
7825 return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7826 (__v8di) __B,
7827 (__v8di) __W, __U);
7828}
7829
7830extern __inline __m512i
7831__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7832_mm512_maskz_and_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7833{
7834 return (__m512i) __builtin_ia32_pandq512_mask ((__v8di) __A,
7835 (__v8di) __B,
7836 (__v8di)
7837 _mm512_setzero_pd (),
7838 __U);
7839}
7840
7841extern __inline __m512i
7842__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7843_mm512_andnot_si512 (__m512i __A, __m512i __B)
7844{
7845 return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7846 (__v16si) __B,
7847 (__v16si)
7848 _mm512_undefined_epi32 (),
7849 (__mmask16) -1);
7850}
7851
7852extern __inline __m512i
7853__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7854_mm512_andnot_epi32 (__m512i __A, __m512i __B)
7855{
7856 return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7857 (__v16si) __B,
7858 (__v16si)
7859 _mm512_undefined_epi32 (),
7860 (__mmask16) -1);
7861}
7862
7863extern __inline __m512i
7864__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7865_mm512_mask_andnot_epi32 (__m512i __W, __mmask16 __U, __m512i __A, __m512i __B)
7866{
7867 return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7868 (__v16si) __B,
7869 (__v16si) __W,
7870 (__mmask16) __U);
7871}
7872
7873extern __inline __m512i
7874__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7875_mm512_maskz_andnot_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
7876{
7877 return (__m512i) __builtin_ia32_pandnd512_mask ((__v16si) __A,
7878 (__v16si) __B,
7879 (__v16si)
7880 _mm512_setzero_si512 (),
7881 (__mmask16) __U);
7882}
7883
7884extern __inline __m512i
7885__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7886_mm512_andnot_epi64 (__m512i __A, __m512i __B)
7887{
7888 return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7889 (__v8di) __B,
7890 (__v8di)
7891 _mm512_undefined_epi32 (),
7892 (__mmask8) -1);
7893}
7894
7895extern __inline __m512i
7896__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7897_mm512_mask_andnot_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
7898{
7899 return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7900 (__v8di) __B,
7901 (__v8di) __W, __U);
7902}
7903
7904extern __inline __m512i
7905__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7906_mm512_maskz_andnot_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
7907{
7908 return (__m512i) __builtin_ia32_pandnq512_mask ((__v8di) __A,
7909 (__v8di) __B,
7910 (__v8di)
7911 _mm512_setzero_pd (),
7912 __U);
7913}
7914
7915extern __inline __mmask16
7916__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7917_mm512_test_epi32_mask (__m512i __A, __m512i __B)
7918{
7919 return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7920 (__v16si) __B,
7921 (__mmask16) -1);
7922}
7923
7924extern __inline __mmask16
7925__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7926_mm512_mask_test_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7927{
7928 return (__mmask16) __builtin_ia32_ptestmd512 ((__v16si) __A,
7929 (__v16si) __B, __U);
7930}
7931
7932extern __inline __mmask8
7933__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7934_mm512_test_epi64_mask (__m512i __A, __m512i __B)
7935{
7936 return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A,
7937 (__v8di) __B,
7938 (__mmask8) -1);
7939}
7940
7941extern __inline __mmask8
7942__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7943_mm512_mask_test_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7944{
7945 return (__mmask8) __builtin_ia32_ptestmq512 ((__v8di) __A, (__v8di) __B, __U);
7946}
7947
7948extern __inline __mmask16
7949__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7950_mm512_testn_epi32_mask (__m512i __A, __m512i __B)
7951{
7952 return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7953 (__v16si) __B,
7954 (__mmask16) -1);
7955}
7956
7957extern __inline __mmask16
7958__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7959_mm512_mask_testn_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
7960{
7961 return (__mmask16) __builtin_ia32_ptestnmd512 ((__v16si) __A,
7962 (__v16si) __B, __U);
7963}
7964
7965extern __inline __mmask8
7966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7967_mm512_testn_epi64_mask (__m512i __A, __m512i __B)
7968{
7969 return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7970 (__v8di) __B,
7971 (__mmask8) -1);
7972}
7973
7974extern __inline __mmask8
7975__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7976_mm512_mask_testn_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
7977{
7978 return (__mmask8) __builtin_ia32_ptestnmq512 ((__v8di) __A,
7979 (__v8di) __B, __U);
7980}
7981
7982extern __inline __m512
7983__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7984_mm512_abs_ps (__m512 __A)
7985{
7986 return (__m512) _mm512_and_epi32 ((__m512i) __A,
7987 _mm512_set1_epi32 (0x7fffffff));
7988}
7989
7990extern __inline __m512
7991__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
7992_mm512_mask_abs_ps (__m512 __W, __mmask16 __U, __m512 __A)
7993{
7994 return (__m512) _mm512_mask_and_epi32 ((__m512i) __W, __U, (__m512i) __A,
7995 _mm512_set1_epi32 (0x7fffffff));
7996}
7997
7998extern __inline __m512d
7999__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8000_mm512_abs_pd (__m512d __A)
8001{
8002 return (__m512d) _mm512_and_epi64 ((__m512i) __A,
8003 _mm512_set1_epi64 (0x7fffffffffffffffLL));
8004}
8005
8006extern __inline __m512d
8007__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8008_mm512_mask_abs_pd (__m512d __W, __mmask8 __U, __m512d __A)
8009{
8010 return (__m512d)
8011 _mm512_mask_and_epi64 ((__m512i) __W, __U, (__m512i) __A,
8012 _mm512_set1_epi64 (0x7fffffffffffffffLL));
8013}
8014
8015extern __inline __m512i
8016__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8017_mm512_unpackhi_epi32 (__m512i __A, __m512i __B)
8018{
8019 return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
8020 (__v16si) __B,
8021 (__v16si)
8022 _mm512_undefined_epi32 (),
8023 (__mmask16) -1);
8024}
8025
8026extern __inline __m512i
8027__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8028_mm512_mask_unpackhi_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
8029 __m512i __B)
8030{
8031 return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
8032 (__v16si) __B,
8033 (__v16si) __W,
8034 (__mmask16) __U);
8035}
8036
8037extern __inline __m512i
8038__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8039_mm512_maskz_unpackhi_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
8040{
8041 return (__m512i) __builtin_ia32_punpckhdq512_mask ((__v16si) __A,
8042 (__v16si) __B,
8043 (__v16si)
8044 _mm512_setzero_si512 (),
8045 (__mmask16) __U);
8046}
8047
8048extern __inline __m512i
8049__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8050_mm512_unpackhi_epi64 (__m512i __A, __m512i __B)
8051{
8052 return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
8053 (__v8di) __B,
8054 (__v8di)
8055 _mm512_undefined_epi32 (),
8056 (__mmask8) -1);
8057}
8058
8059extern __inline __m512i
8060__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8061_mm512_mask_unpackhi_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
8062{
8063 return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
8064 (__v8di) __B,
8065 (__v8di) __W,
8066 (__mmask8) __U);
8067}
8068
8069extern __inline __m512i
8070__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8071_mm512_maskz_unpackhi_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
8072{
8073 return (__m512i) __builtin_ia32_punpckhqdq512_mask ((__v8di) __A,
8074 (__v8di) __B,
8075 (__v8di)
8076 _mm512_setzero_si512 (),
8077 (__mmask8) __U);
8078}
8079
8080extern __inline __m512i
8081__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8082_mm512_unpacklo_epi32 (__m512i __A, __m512i __B)
8083{
8084 return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
8085 (__v16si) __B,
8086 (__v16si)
8087 _mm512_undefined_epi32 (),
8088 (__mmask16) -1);
8089}
8090
8091extern __inline __m512i
8092__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8093_mm512_mask_unpacklo_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
8094 __m512i __B)
8095{
8096 return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
8097 (__v16si) __B,
8098 (__v16si) __W,
8099 (__mmask16) __U);
8100}
8101
8102extern __inline __m512i
8103__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8104_mm512_maskz_unpacklo_epi32 (__mmask16 __U, __m512i __A, __m512i __B)
8105{
8106 return (__m512i) __builtin_ia32_punpckldq512_mask ((__v16si) __A,
8107 (__v16si) __B,
8108 (__v16si)
8109 _mm512_setzero_si512 (),
8110 (__mmask16) __U);
8111}
8112
8113extern __inline __m512i
8114__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8115_mm512_unpacklo_epi64 (__m512i __A, __m512i __B)
8116{
8117 return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8118 (__v8di) __B,
8119 (__v8di)
8120 _mm512_undefined_epi32 (),
8121 (__mmask8) -1);
8122}
8123
8124extern __inline __m512i
8125__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8126_mm512_mask_unpacklo_epi64 (__m512i __W, __mmask8 __U, __m512i __A, __m512i __B)
8127{
8128 return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8129 (__v8di) __B,
8130 (__v8di) __W,
8131 (__mmask8) __U);
8132}
8133
8134extern __inline __m512i
8135__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8136_mm512_maskz_unpacklo_epi64 (__mmask8 __U, __m512i __A, __m512i __B)
8137{
8138 return (__m512i) __builtin_ia32_punpcklqdq512_mask ((__v8di) __A,
8139 (__v8di) __B,
8140 (__v8di)
8141 _mm512_setzero_si512 (),
8142 (__mmask8) __U);
8143}
8144
8145#ifdef __x86_64__
8146#ifdef __OPTIMIZE__
8147extern __inline unsigned long long
8148__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8149_mm_cvt_roundss_u64 (__m128 __A, const int __R)
8150{
8151 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf) __A, __R);
8152}
8153
8154extern __inline long long
8155__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8156_mm_cvt_roundss_si64 (__m128 __A, const int __R)
8157{
8158 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8159}
8160
8161extern __inline long long
8162__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8163_mm_cvt_roundss_i64 (__m128 __A, const int __R)
8164{
8165 return (long long) __builtin_ia32_vcvtss2si64 ((__v4sf) __A, __R);
8166}
8167
8168extern __inline unsigned long long
8169__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8170_mm_cvtt_roundss_u64 (__m128 __A, const int __R)
8171{
8172 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf) __A, __R);
8173}
8174
8175extern __inline long long
8176__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8177_mm_cvtt_roundss_i64 (__m128 __A, const int __R)
8178{
8179 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8180}
8181
8182extern __inline long long
8183__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8184_mm_cvtt_roundss_si64 (__m128 __A, const int __R)
8185{
8186 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A, __R);
8187}
8188#else
8189#define _mm_cvt_roundss_u64(A, B) \
8190 ((unsigned long long)__builtin_ia32_vcvtss2usi64(A, B))
8191
8192#define _mm_cvt_roundss_si64(A, B) \
8193 ((long long)__builtin_ia32_vcvtss2si64(A, B))
8194
8195#define _mm_cvt_roundss_i64(A, B) \
8196 ((long long)__builtin_ia32_vcvtss2si64(A, B))
8197
8198#define _mm_cvtt_roundss_u64(A, B) \
8199 ((unsigned long long)__builtin_ia32_vcvttss2usi64(A, B))
8200
8201#define _mm_cvtt_roundss_i64(A, B) \
8202 ((long long)__builtin_ia32_vcvttss2si64(A, B))
8203
8204#define _mm_cvtt_roundss_si64(A, B) \
8205 ((long long)__builtin_ia32_vcvttss2si64(A, B))
8206#endif
8207#endif
8208
8209#ifdef __OPTIMIZE__
8210extern __inline unsigned
8211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8212_mm_cvt_roundss_u32 (__m128 __A, const int __R)
8213{
8214 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A, __R);
8215}
8216
8217extern __inline int
8218__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8219_mm_cvt_roundss_si32 (__m128 __A, const int __R)
8220{
8221 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8222}
8223
8224extern __inline int
8225__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8226_mm_cvt_roundss_i32 (__m128 __A, const int __R)
8227{
8228 return (int) __builtin_ia32_vcvtss2si32 ((__v4sf) __A, __R);
8229}
8230
8231extern __inline unsigned
8232__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8233_mm_cvtt_roundss_u32 (__m128 __A, const int __R)
8234{
8235 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A, __R);
8236}
8237
8238extern __inline int
8239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8240_mm_cvtt_roundss_i32 (__m128 __A, const int __R)
8241{
8242 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8243}
8244
8245extern __inline int
8246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8247_mm_cvtt_roundss_si32 (__m128 __A, const int __R)
8248{
8249 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A, __R);
8250}
8251#else
8252#define _mm_cvt_roundss_u32(A, B) \
8253 ((unsigned)__builtin_ia32_vcvtss2usi32(A, B))
8254
8255#define _mm_cvt_roundss_si32(A, B) \
8256 ((int)__builtin_ia32_vcvtss2si32(A, B))
8257
8258#define _mm_cvt_roundss_i32(A, B) \
8259 ((int)__builtin_ia32_vcvtss2si32(A, B))
8260
8261#define _mm_cvtt_roundss_u32(A, B) \
8262 ((unsigned)__builtin_ia32_vcvttss2usi32(A, B))
8263
8264#define _mm_cvtt_roundss_si32(A, B) \
8265 ((int)__builtin_ia32_vcvttss2si32(A, B))
8266
8267#define _mm_cvtt_roundss_i32(A, B) \
8268 ((int)__builtin_ia32_vcvttss2si32(A, B))
8269#endif
8270
8271#ifdef __x86_64__
8272#ifdef __OPTIMIZE__
8273extern __inline unsigned long long
8274__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8275_mm_cvt_roundsd_u64 (__m128d __A, const int __R)
8276{
8277 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df) __A, __R);
8278}
8279
8280extern __inline long long
8281__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8282_mm_cvt_roundsd_si64 (__m128d __A, const int __R)
8283{
8284 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8285}
8286
8287extern __inline long long
8288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8289_mm_cvt_roundsd_i64 (__m128d __A, const int __R)
8290{
8291 return (long long) __builtin_ia32_vcvtsd2si64 ((__v2df) __A, __R);
8292}
8293
8294extern __inline unsigned long long
8295__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8296_mm_cvtt_roundsd_u64 (__m128d __A, const int __R)
8297{
8298 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df) __A, __R);
8299}
8300
8301extern __inline long long
8302__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8303_mm_cvtt_roundsd_si64 (__m128d __A, const int __R)
8304{
8305 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8306}
8307
8308extern __inline long long
8309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8310_mm_cvtt_roundsd_i64 (__m128d __A, const int __R)
8311{
8312 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A, __R);
8313}
8314#else
8315#define _mm_cvt_roundsd_u64(A, B) \
8316 ((unsigned long long)__builtin_ia32_vcvtsd2usi64(A, B))
8317
8318#define _mm_cvt_roundsd_si64(A, B) \
8319 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8320
8321#define _mm_cvt_roundsd_i64(A, B) \
8322 ((long long)__builtin_ia32_vcvtsd2si64(A, B))
8323
8324#define _mm_cvtt_roundsd_u64(A, B) \
8325 ((unsigned long long)__builtin_ia32_vcvttsd2usi64(A, B))
8326
8327#define _mm_cvtt_roundsd_si64(A, B) \
8328 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8329
8330#define _mm_cvtt_roundsd_i64(A, B) \
8331 ((long long)__builtin_ia32_vcvttsd2si64(A, B))
8332#endif
8333#endif
8334
8335#ifdef __OPTIMIZE__
8336extern __inline unsigned
8337__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8338_mm_cvt_roundsd_u32 (__m128d __A, const int __R)
8339{
8340 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A, __R);
8341}
8342
8343extern __inline int
8344__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8345_mm_cvt_roundsd_si32 (__m128d __A, const int __R)
8346{
8347 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8348}
8349
8350extern __inline int
8351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8352_mm_cvt_roundsd_i32 (__m128d __A, const int __R)
8353{
8354 return (int) __builtin_ia32_vcvtsd2si32 ((__v2df) __A, __R);
8355}
8356
8357extern __inline unsigned
8358__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8359_mm_cvtt_roundsd_u32 (__m128d __A, const int __R)
8360{
8361 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A, __R);
8362}
8363
8364extern __inline int
8365__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8366_mm_cvtt_roundsd_i32 (__m128d __A, const int __R)
8367{
8368 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8369}
8370
8371extern __inline int
8372__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8373_mm_cvtt_roundsd_si32 (__m128d __A, const int __R)
8374{
8375 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A, __R);
8376}
8377#else
8378#define _mm_cvt_roundsd_u32(A, B) \
8379 ((unsigned)__builtin_ia32_vcvtsd2usi32(A, B))
8380
8381#define _mm_cvt_roundsd_si32(A, B) \
8382 ((int)__builtin_ia32_vcvtsd2si32(A, B))
8383
8384#define _mm_cvt_roundsd_i32(A, B) \
8385 ((int)__builtin_ia32_vcvtsd2si32(A, B))
8386
8387#define _mm_cvtt_roundsd_u32(A, B) \
8388 ((unsigned)__builtin_ia32_vcvttsd2usi32(A, B))
8389
8390#define _mm_cvtt_roundsd_si32(A, B) \
8391 ((int)__builtin_ia32_vcvttsd2si32(A, B))
8392
8393#define _mm_cvtt_roundsd_i32(A, B) \
8394 ((int)__builtin_ia32_vcvttsd2si32(A, B))
8395#endif
8396
8397extern __inline __m512d
8398__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8399_mm512_movedup_pd (__m512d __A)
8400{
8401 return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8402 (__v8df)
8403 _mm512_undefined_pd (),
8404 (__mmask8) -1);
8405}
8406
8407extern __inline __m512d
8408__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8409_mm512_mask_movedup_pd (__m512d __W, __mmask8 __U, __m512d __A)
8410{
8411 return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8412 (__v8df) __W,
8413 (__mmask8) __U);
8414}
8415
8416extern __inline __m512d
8417__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8418_mm512_maskz_movedup_pd (__mmask8 __U, __m512d __A)
8419{
8420 return (__m512d) __builtin_ia32_movddup512_mask ((__v8df) __A,
8421 (__v8df)
8422 _mm512_setzero_pd (),
8423 (__mmask8) __U);
8424}
8425
8426extern __inline __m512d
8427__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8428_mm512_unpacklo_pd (__m512d __A, __m512d __B)
8429{
8430 return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8431 (__v8df) __B,
8432 (__v8df)
8433 _mm512_undefined_pd (),
8434 (__mmask8) -1);
8435}
8436
8437extern __inline __m512d
8438__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8439_mm512_mask_unpacklo_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8440{
8441 return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8442 (__v8df) __B,
8443 (__v8df) __W,
8444 (__mmask8) __U);
8445}
8446
8447extern __inline __m512d
8448__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8449_mm512_maskz_unpacklo_pd (__mmask8 __U, __m512d __A, __m512d __B)
8450{
8451 return (__m512d) __builtin_ia32_unpcklpd512_mask ((__v8df) __A,
8452 (__v8df) __B,
8453 (__v8df)
8454 _mm512_setzero_pd (),
8455 (__mmask8) __U);
8456}
8457
8458extern __inline __m512d
8459__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8460_mm512_unpackhi_pd (__m512d __A, __m512d __B)
8461{
8462 return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8463 (__v8df) __B,
8464 (__v8df)
8465 _mm512_undefined_pd (),
8466 (__mmask8) -1);
8467}
8468
8469extern __inline __m512d
8470__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8471_mm512_mask_unpackhi_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
8472{
8473 return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8474 (__v8df) __B,
8475 (__v8df) __W,
8476 (__mmask8) __U);
8477}
8478
8479extern __inline __m512d
8480__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8481_mm512_maskz_unpackhi_pd (__mmask8 __U, __m512d __A, __m512d __B)
8482{
8483 return (__m512d) __builtin_ia32_unpckhpd512_mask ((__v8df) __A,
8484 (__v8df) __B,
8485 (__v8df)
8486 _mm512_setzero_pd (),
8487 (__mmask8) __U);
8488}
8489
8490extern __inline __m512
8491__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8492_mm512_unpackhi_ps (__m512 __A, __m512 __B)
8493{
8494 return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8495 (__v16sf) __B,
8496 (__v16sf)
8497 _mm512_undefined_ps (),
8498 (__mmask16) -1);
8499}
8500
8501extern __inline __m512
8502__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8503_mm512_mask_unpackhi_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
8504{
8505 return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8506 (__v16sf) __B,
8507 (__v16sf) __W,
8508 (__mmask16) __U);
8509}
8510
8511extern __inline __m512
8512__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8513_mm512_maskz_unpackhi_ps (__mmask16 __U, __m512 __A, __m512 __B)
8514{
8515 return (__m512) __builtin_ia32_unpckhps512_mask ((__v16sf) __A,
8516 (__v16sf) __B,
8517 (__v16sf)
8518 _mm512_setzero_ps (),
8519 (__mmask16) __U);
8520}
8521
8522#ifdef __OPTIMIZE__
8523extern __inline __m512d
8524__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8525_mm512_cvt_roundps_pd (__m256 __A, const int __R)
8526{
8527 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8528 (__v8df)
8529 _mm512_undefined_pd (),
8530 (__mmask8) -1, __R);
8531}
8532
8533extern __inline __m512d
8534__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8536 const int __R)
8537{
8538 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8539 (__v8df) __W,
8540 (__mmask8) __U, __R);
8541}
8542
8543extern __inline __m512d
8544__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8545_mm512_maskz_cvt_roundps_pd (__mmask8 __U, __m256 __A, const int __R)
8546{
8547 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
8548 (__v8df)
8549 _mm512_setzero_pd (),
8550 (__mmask8) __U, __R);
8551}
8552
8553extern __inline __m512
8554__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8555_mm512_cvt_roundph_ps (__m256i __A, const int __R)
8556{
8557 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8558 (__v16sf)
8559 _mm512_undefined_ps (),
8560 (__mmask16) -1, __R);
8561}
8562
8563extern __inline __m512
8564__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8566 const int __R)
8567{
8568 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8569 (__v16sf) __W,
8570 (__mmask16) __U, __R);
8571}
8572
8573extern __inline __m512
8574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8575_mm512_maskz_cvt_roundph_ps (__mmask16 __U, __m256i __A, const int __R)
8576{
8577 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
8578 (__v16sf)
8579 _mm512_setzero_ps (),
8580 (__mmask16) __U, __R);
8581}
8582
8583extern __inline __m256i
8584__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8585_mm512_cvt_roundps_ph (__m512 __A, const int __I)
8586{
8587 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8588 __I,
8589 (__v16hi)
8590 _mm256_undefined_si256 (),
8591 -1);
8592}
8593
8594extern __inline __m256i
8595__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8596_mm512_cvtps_ph (__m512 __A, const int __I)
8597{
8598 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8599 __I,
8600 (__v16hi)
8601 _mm256_undefined_si256 (),
8602 -1);
8603}
8604
8605extern __inline __m256i
8606__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8608 const int __I)
8609{
8610 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8611 __I,
8612 (__v16hi) __U,
8613 (__mmask16) __W);
8614}
8615
8616extern __inline __m256i
8617__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8618_mm512_mask_cvtps_ph (__m256i __U, __mmask16 __W, __m512 __A, const int __I)
8619{
8620 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8621 __I,
8622 (__v16hi) __U,
8623 (__mmask16) __W);
8624}
8625
8626extern __inline __m256i
8627__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8628_mm512_maskz_cvt_roundps_ph (__mmask16 __W, __m512 __A, const int __I)
8629{
8630 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8631 __I,
8632 (__v16hi)
8633 _mm256_setzero_si256 (),
8634 (__mmask16) __W);
8635}
8636
8637extern __inline __m256i
8638__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8639_mm512_maskz_cvtps_ph (__mmask16 __W, __m512 __A, const int __I)
8640{
8641 return (__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf) __A,
8642 __I,
8643 (__v16hi)
8644 _mm256_setzero_si256 (),
8645 (__mmask16) __W);
8646}
8647#else
8648#define _mm512_cvt_roundps_pd(A, B) \
8649 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_undefined_pd(), -1, B)
8650
8651#define _mm512_mask_cvt_roundps_pd(W, U, A, B) \
8652 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)(W), U, B)
8653
8654#define _mm512_maskz_cvt_roundps_pd(U, A, B) \
8655 (__m512d)__builtin_ia32_cvtps2pd512_mask(A, (__v8df)_mm512_setzero_pd(), U, B)
8656
8657#define _mm512_cvt_roundph_ps(A, B) \
8658 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_undefined_ps(), -1, B)
8659
8660#define _mm512_mask_cvt_roundph_ps(W, U, A, B) \
8661 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)(W), U, B)
8662
8663#define _mm512_maskz_cvt_roundph_ps(U, A, B) \
8664 (__m512)__builtin_ia32_vcvtph2ps512_mask((__v16hi)(A), (__v16sf)_mm512_setzero_ps(), U, B)
8665
8666#define _mm512_cvt_roundps_ph(A, I) \
8667 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8668 (__v16hi)_mm256_undefined_si256 (), -1))
8669#define _mm512_cvtps_ph(A, I) \
8670 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8671 (__v16hi)_mm256_undefined_si256 (), -1))
8672#define _mm512_mask_cvt_roundps_ph(U, W, A, I) \
8673 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8674 (__v16hi)(__m256i)(U), (__mmask16) (W)))
8675#define _mm512_mask_cvtps_ph(U, W, A, I) \
8676 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8677 (__v16hi)(__m256i)(U), (__mmask16) (W)))
8678#define _mm512_maskz_cvt_roundps_ph(W, A, I) \
8679 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8680 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8681#define _mm512_maskz_cvtps_ph(W, A, I) \
8682 ((__m256i) __builtin_ia32_vcvtps2ph512_mask ((__v16sf)(__m512) (A), (int) (I),\
8683 (__v16hi)_mm256_setzero_si256 (), (__mmask16) (W)))
8684#endif
8685
8686#ifdef __OPTIMIZE__
8687extern __inline __m256
8688__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8689_mm512_cvt_roundpd_ps (__m512d __A, const int __R)
8690{
8691 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8692 (__v8sf)
8693 _mm256_undefined_ps (),
8694 (__mmask8) -1, __R);
8695}
8696
8697extern __inline __m256
8698__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8700 const int __R)
8701{
8702 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8703 (__v8sf) __W,
8704 (__mmask8) __U, __R);
8705}
8706
8707extern __inline __m256
8708__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8709_mm512_maskz_cvt_roundpd_ps (__mmask8 __U, __m512d __A, const int __R)
8710{
8711 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
8712 (__v8sf)
8713 _mm256_setzero_ps (),
8714 (__mmask8) __U, __R);
8715}
8716
8717extern __inline __m128
8718__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8719_mm_cvt_roundsd_ss (__m128 __A, __m128d __B, const int __R)
8720{
8721 return (__m128) __builtin_ia32_cvtsd2ss_round ((__v4sf) __A,
8722 (__v2df) __B,
8723 __R);
8724}
8725
8726extern __inline __m128
8727__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8728_mm_mask_cvt_roundsd_ss (__m128 __W, __mmask8 __U, __m128 __A,
8729 __m128d __B, const int __R)
8730{
8731 return (__m128) __builtin_ia32_cvtsd2ss_mask_round ((__v4sf) __A,
8732 (__v2df) __B,
8733 (__v4sf) __W,
8734 __U,
8735 __R);
8736}
8737
8738extern __inline __m128
8739__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8741 __m128d __B, const int __R)
8742{
8743 return (__m128) __builtin_ia32_cvtsd2ss_mask_round ((__v4sf) __A,
8744 (__v2df) __B,
8745 _mm_setzero_ps (),
8746 __U,
8747 __R);
8748}
8749
8750extern __inline __m128d
8751__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8752_mm_cvt_roundss_sd (__m128d __A, __m128 __B, const int __R)
8753{
8754 return (__m128d) __builtin_ia32_cvtss2sd_round ((__v2df) __A,
8755 (__v4sf) __B,
8756 __R);
8757}
8758
8759extern __inline __m128d
8760__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8761_mm_mask_cvt_roundss_sd (__m128d __W, __mmask8 __U, __m128d __A,
8762 __m128 __B, const int __R)
8763{
8764 return (__m128d) __builtin_ia32_cvtss2sd_mask_round ((__v2df) __A,
8765 (__v4sf) __B,
8766 (__v2df) __W,
8767 __U,
8768 __R);
8769}
8770
8771extern __inline __m128d
8772__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8774 __m128 __B, const int __R)
8775{
8776 return (__m128d) __builtin_ia32_cvtss2sd_mask_round ((__v2df) __A,
8777 (__v4sf) __B,
8778 _mm_setzero_pd (),
8779 __U,
8780 __R);
8781}
8782#else
8783#define _mm512_cvt_roundpd_ps(A, B) \
8784 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_undefined_ps(), -1, B)
8785
8786#define _mm512_mask_cvt_roundpd_ps(W, U, A, B) \
8787 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)(W), U, B)
8788
8789#define _mm512_maskz_cvt_roundpd_ps(U, A, B) \
8790 (__m256)__builtin_ia32_cvtpd2ps512_mask(A, (__v8sf)_mm256_setzero_ps(), U, B)
8791
8792#define _mm_cvt_roundsd_ss(A, B, C) \
8793 (__m128)__builtin_ia32_cvtsd2ss_round(A, B, C)
8794
8795#define _mm_mask_cvt_roundsd_ss(W, U, A, B, C) \
8796 (__m128)__builtin_ia32_cvtsd2ss_mask_round ((A), (B), (W), (U), (C))
8797
8798#define _mm_maskz_cvt_roundsd_ss(U, A, B, C) \
8799 (__m128)__builtin_ia32_cvtsd2ss_mask_round ((A), (B), _mm_setzero_ps (), \
8800 (U), (C))
8801
8802#define _mm_cvt_roundss_sd(A, B, C) \
8803 (__m128d)__builtin_ia32_cvtss2sd_round(A, B, C)
8804
8805#define _mm_mask_cvt_roundss_sd(W, U, A, B, C) \
8806 (__m128d)__builtin_ia32_cvtss2sd_mask_round ((A), (B), (W), (U), (C))
8807
8808#define _mm_maskz_cvt_roundss_sd(U, A, B, C) \
8809 (__m128d)__builtin_ia32_cvtss2sd_mask_round ((A), (B), _mm_setzero_pd (), \
8810 (U), (C))
8811
8812#endif
8813
8814#define _mm_mask_cvtss_sd(W, U, A, B) \
8815 _mm_mask_cvt_roundss_sd ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
8816
8817#define _mm_maskz_cvtss_sd(U, A, B) \
8818 _mm_maskz_cvt_roundss_sd ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
8819
8820#define _mm_mask_cvtsd_ss(W, U, A, B) \
8821 _mm_mask_cvt_roundsd_ss ((W), (U), (A), (B), _MM_FROUND_CUR_DIRECTION)
8822
8823#define _mm_maskz_cvtsd_ss(U, A, B) \
8824 _mm_maskz_cvt_roundsd_ss ((U), (A), (B), _MM_FROUND_CUR_DIRECTION)
8825
8826extern __inline void
8827__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8828_mm512_stream_si512 (__m512i * __P, __m512i __A)
8829{
8830 __builtin_ia32_movntdq512 ((__v8di *) __P, (__v8di) __A);
8831}
8832
8833extern __inline void
8834__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8835_mm512_stream_ps (float *__P, __m512 __A)
8836{
8837 __builtin_ia32_movntps512 (__P, (__v16sf) __A);
8838}
8839
8840extern __inline void
8841__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8842_mm512_stream_pd (double *__P, __m512d __A)
8843{
8844 __builtin_ia32_movntpd512 (__P, (__v8df) __A);
8845}
8846
8847extern __inline __m512i
8848__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8849_mm512_stream_load_si512 (void *__P)
8850{
8851 return __builtin_ia32_movntdqa512 ((__v8di *)__P);
8852}
8853
8854/* Constants for mantissa extraction */
8855typedef enum
8856{
8857 _MM_MANT_NORM_1_2, /* interval [1, 2) */
8858 _MM_MANT_NORM_p5_2, /* interval [0.5, 2) */
8859 _MM_MANT_NORM_p5_1, /* interval [0.5, 1) */
8860 _MM_MANT_NORM_p75_1p5 /* interval [0.75, 1.5) */
8862
8863typedef enum
8864{
8865 _MM_MANT_SIGN_src, /* sign = sign(SRC) */
8866 _MM_MANT_SIGN_zero, /* sign = 0 */
8867 _MM_MANT_SIGN_nan /* DEST = NaN if sign(SRC) = 1 */
8869
8870#ifdef __OPTIMIZE__
8871extern __inline __m128
8872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8873_mm_getexp_round_ss (__m128 __A, __m128 __B, const int __R)
8874{
8875 return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
8876 (__v4sf) __B,
8877 __R);
8878}
8879
8880extern __inline __m128
8881__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8883 __m128 __B, const int __R)
8884{
8885 return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8886 (__v4sf) __B,
8887 (__v4sf) __W,
8888 (__mmask8) __U, __R);
8889}
8890
8891extern __inline __m128
8892__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8894 const int __R)
8895{
8896 return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
8897 (__v4sf) __B,
8898 (__v4sf)
8899 _mm_setzero_ps (),
8900 (__mmask8) __U, __R);
8901}
8902
8903extern __inline __m128d
8904__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8905_mm_getexp_round_sd (__m128d __A, __m128d __B, const int __R)
8906{
8907 return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
8908 (__v2df) __B,
8909 __R);
8910}
8911
8912extern __inline __m128d
8913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8914_mm_mask_getexp_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
8915 __m128d __B, const int __R)
8916{
8917 return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8918 (__v2df) __B,
8919 (__v2df) __W,
8920 (__mmask8) __U, __R);
8921}
8922
8923extern __inline __m128d
8924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8925_mm_maskz_getexp_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
8926 const int __R)
8927{
8928 return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
8929 (__v2df) __B,
8930 (__v2df)
8931 _mm_setzero_pd (),
8932 (__mmask8) __U, __R);
8933}
8934
8935extern __inline __m512
8936__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8937_mm512_getexp_round_ps (__m512 __A, const int __R)
8938{
8939 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8940 (__v16sf)
8941 _mm512_undefined_ps (),
8942 (__mmask16) -1, __R);
8943}
8944
8945extern __inline __m512
8946__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8948 const int __R)
8949{
8950 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8951 (__v16sf) __W,
8952 (__mmask16) __U, __R);
8953}
8954
8955extern __inline __m512
8956__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8958{
8959 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
8960 (__v16sf)
8961 _mm512_setzero_ps (),
8962 (__mmask16) __U, __R);
8963}
8964
8965extern __inline __m512d
8966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8967_mm512_getexp_round_pd (__m512d __A, const int __R)
8968{
8969 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8970 (__v8df)
8971 _mm512_undefined_pd (),
8972 (__mmask8) -1, __R);
8973}
8974
8975extern __inline __m512d
8976__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8978 const int __R)
8979{
8980 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8981 (__v8df) __W,
8982 (__mmask8) __U, __R);
8983}
8984
8985extern __inline __m512d
8986__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8987_mm512_maskz_getexp_round_pd (__mmask8 __U, __m512d __A, const int __R)
8988{
8989 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
8990 (__v8df)
8991 _mm512_setzero_pd (),
8992 (__mmask8) __U, __R);
8993}
8994
8995extern __inline __m512d
8996__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
8998 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
8999{
9000 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
9001 (__C << 2) | __B,
9002 _mm512_undefined_pd (),
9003 (__mmask8) -1, __R);
9004}
9005
9006extern __inline __m512d
9007__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9010 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
9011{
9012 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
9013 (__C << 2) | __B,
9014 (__v8df) __W, __U,
9015 __R);
9016}
9017
9018extern __inline __m512d
9019__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9022 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
9023{
9024 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
9025 (__C << 2) | __B,
9026 (__v8df)
9027 _mm512_setzero_pd (),
9028 __U, __R);
9029}
9030
9031extern __inline __m512
9032__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9034 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
9035{
9036 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
9037 (__C << 2) | __B,
9038 _mm512_undefined_ps (),
9039 (__mmask16) -1, __R);
9040}
9041
9042extern __inline __m512
9043__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9046 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
9047{
9048 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
9049 (__C << 2) | __B,
9050 (__v16sf) __W, __U,
9051 __R);
9052}
9053
9054extern __inline __m512
9055__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9058 _MM_MANTISSA_SIGN_ENUM __C, const int __R)
9059{
9060 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
9061 (__C << 2) | __B,
9062 (__v16sf)
9063 _mm512_setzero_ps (),
9064 __U, __R);
9065}
9066
9067extern __inline __m128d
9068__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9069_mm_getmant_round_sd (__m128d __A, __m128d __B,
9071 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9072{
9073 return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
9074 (__v2df) __B,
9075 (__D << 2) | __C,
9076 __R);
9077}
9078
9079extern __inline __m128d
9080__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9081_mm_mask_getmant_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
9083 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9084{
9085 return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
9086 (__v2df) __B,
9087 (__D << 2) | __C,
9088 (__v2df) __W,
9089 __U, __R);
9090}
9091
9092extern __inline __m128d
9093__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9094_mm_maskz_getmant_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
9096 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9097{
9098 return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
9099 (__v2df) __B,
9100 (__D << 2) | __C,
9101 (__v2df)
9102 _mm_setzero_pd(),
9103 __U, __R);
9104}
9105
9106extern __inline __m128
9107__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9108_mm_getmant_round_ss (__m128 __A, __m128 __B,
9110 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9111{
9112 return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
9113 (__v4sf) __B,
9114 (__D << 2) | __C,
9115 __R);
9116}
9117
9118extern __inline __m128
9119__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9122 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9123{
9124 return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
9125 (__v4sf) __B,
9126 (__D << 2) | __C,
9127 (__v4sf) __W,
9128 __U, __R);
9129}
9130
9131extern __inline __m128
9132__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9135 _MM_MANTISSA_SIGN_ENUM __D, const int __R)
9136{
9137 return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
9138 (__v4sf) __B,
9139 (__D << 2) | __C,
9140 (__v4sf)
9141 _mm_setzero_ps(),
9142 __U, __R);
9143}
9144
9145#else
9146#define _mm512_getmant_round_pd(X, B, C, R) \
9147 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
9148 (int)(((C)<<2) | (B)), \
9149 (__v8df)(__m512d)_mm512_undefined_pd(), \
9150 (__mmask8)-1,\
9151 (R)))
9152
9153#define _mm512_mask_getmant_round_pd(W, U, X, B, C, R) \
9154 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
9155 (int)(((C)<<2) | (B)), \
9156 (__v8df)(__m512d)(W), \
9157 (__mmask8)(U),\
9158 (R)))
9159
9160#define _mm512_maskz_getmant_round_pd(U, X, B, C, R) \
9161 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
9162 (int)(((C)<<2) | (B)), \
9163 (__v8df)(__m512d)_mm512_setzero_pd(), \
9164 (__mmask8)(U),\
9165 (R)))
9166#define _mm512_getmant_round_ps(X, B, C, R) \
9167 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
9168 (int)(((C)<<2) | (B)), \
9169 (__v16sf)(__m512)_mm512_undefined_ps(), \
9170 (__mmask16)-1,\
9171 (R)))
9172
9173#define _mm512_mask_getmant_round_ps(W, U, X, B, C, R) \
9174 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
9175 (int)(((C)<<2) | (B)), \
9176 (__v16sf)(__m512)(W), \
9177 (__mmask16)(U),\
9178 (R)))
9179
9180#define _mm512_maskz_getmant_round_ps(U, X, B, C, R) \
9181 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
9182 (int)(((C)<<2) | (B)), \
9183 (__v16sf)(__m512)_mm512_setzero_ps(), \
9184 (__mmask16)(U),\
9185 (R)))
9186#define _mm_getmant_round_sd(X, Y, C, D, R) \
9187 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
9188 (__v2df)(__m128d)(Y), \
9189 (int)(((D)<<2) | (C)), \
9190 (R)))
9191
9192#define _mm_mask_getmant_round_sd(W, U, X, Y, C, D, R) \
9193 ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X), \
9194 (__v2df)(__m128d)(Y), \
9195 (int)(((D)<<2) | (C)), \
9196 (__v2df)(__m128d)(W), \
9197 (__mmask8)(U),\
9198 (R)))
9199
9200#define _mm_maskz_getmant_round_sd(U, X, Y, C, D, R) \
9201 ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X), \
9202 (__v2df)(__m128d)(Y), \
9203 (int)(((D)<<2) | (C)), \
9204 (__v2df)(__m128d)_mm_setzero_pd(), \
9205 (__mmask8)(U),\
9206 (R)))
9207
9208#define _mm_getmant_round_ss(X, Y, C, D, R) \
9209 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
9210 (__v4sf)(__m128)(Y), \
9211 (int)(((D)<<2) | (C)), \
9212 (R)))
9213
9214#define _mm_mask_getmant_round_ss(W, U, X, Y, C, D, R) \
9215 ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X), \
9216 (__v4sf)(__m128)(Y), \
9217 (int)(((D)<<2) | (C)), \
9218 (__v4sf)(__m128)(W), \
9219 (__mmask8)(U),\
9220 (R)))
9221
9222#define _mm_maskz_getmant_round_ss(U, X, Y, C, D, R) \
9223 ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X), \
9224 (__v4sf)(__m128)(Y), \
9225 (int)(((D)<<2) | (C)), \
9226 (__v4sf)(__m128)_mm_setzero_ps(), \
9227 (__mmask8)(U),\
9228 (R)))
9229
9230#define _mm_getexp_round_ss(A, B, R) \
9231 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), R))
9232
9233#define _mm_mask_getexp_round_ss(W, U, A, B, C) \
9234 (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U, C)
9235
9236#define _mm_maskz_getexp_round_ss(U, A, B, C) \
9237 (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
9238
9239#define _mm_getexp_round_sd(A, B, R) \
9240 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B), R))
9241
9242#define _mm_mask_getexp_round_sd(W, U, A, B, C) \
9243 (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U, C)
9244
9245#define _mm_maskz_getexp_round_sd(U, A, B, C) \
9246 (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
9247
9248
9249#define _mm512_getexp_round_ps(A, R) \
9250 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
9251 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, R))
9252
9253#define _mm512_mask_getexp_round_ps(W, U, A, R) \
9254 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
9255 (__v16sf)(__m512)(W), (__mmask16)(U), R))
9256
9257#define _mm512_maskz_getexp_round_ps(U, A, R) \
9258 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
9259 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), R))
9260
9261#define _mm512_getexp_round_pd(A, R) \
9262 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
9263 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, R))
9264
9265#define _mm512_mask_getexp_round_pd(W, U, A, R) \
9266 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
9267 (__v8df)(__m512d)(W), (__mmask8)(U), R))
9268
9269#define _mm512_maskz_getexp_round_pd(U, A, R) \
9270 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
9271 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), R))
9272#endif
9273
9274#ifdef __OPTIMIZE__
9275extern __inline __m512
9276__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9277_mm512_roundscale_round_ps (__m512 __A, const int __imm, const int __R)
9278{
9279 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
9280 (__v16sf)
9281 _mm512_undefined_ps (),
9282 -1, __R);
9283}
9284
9285extern __inline __m512
9286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9288 const int __imm, const int __R)
9289{
9290 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
9291 (__v16sf) __A,
9292 (__mmask16) __B, __R);
9293}
9294
9295extern __inline __m512
9296__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9298 const int __imm, const int __R)
9299{
9300 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
9301 __imm,
9302 (__v16sf)
9303 _mm512_setzero_ps (),
9304 (__mmask16) __A, __R);
9305}
9306
9307extern __inline __m512d
9308__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9309_mm512_roundscale_round_pd (__m512d __A, const int __imm, const int __R)
9310{
9311 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
9312 (__v8df)
9313 _mm512_undefined_pd (),
9314 -1, __R);
9315}
9316
9317extern __inline __m512d
9318__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9320 __m512d __C, const int __imm, const int __R)
9321{
9322 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
9323 (__v8df) __A,
9324 (__mmask8) __B, __R);
9325}
9326
9327extern __inline __m512d
9328__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9330 const int __imm, const int __R)
9331{
9332 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
9333 __imm,
9334 (__v8df)
9335 _mm512_setzero_pd (),
9336 (__mmask8) __A, __R);
9337}
9338
9339extern __inline __m128
9340__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9341_mm_roundscale_round_ss (__m128 __A, __m128 __B, const int __imm,
9342 const int __R)
9343{
9344 return (__m128)
9345 __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
9346 (__v4sf) __B, __imm,
9347 (__v4sf)
9348 _mm_setzero_ps (),
9349 (__mmask8) -1,
9350 __R);
9351}
9352
9353extern __inline __m128
9354__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9356 __m128 __D, const int __imm, const int __R)
9357{
9358 return (__m128)
9359 __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
9360 (__v4sf) __D, __imm,
9361 (__v4sf) __A,
9362 (__mmask8) __B,
9363 __R);
9364}
9365
9366extern __inline __m128
9367__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9369 const int __imm, const int __R)
9370{
9371 return (__m128)
9372 __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
9373 (__v4sf) __C, __imm,
9374 (__v4sf)
9375 _mm_setzero_ps (),
9376 (__mmask8) __A,
9377 __R);
9378}
9379
9380extern __inline __m128d
9381__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9382_mm_roundscale_round_sd (__m128d __A, __m128d __B, const int __imm,
9383 const int __R)
9384{
9385 return (__m128d)
9386 __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
9387 (__v2df) __B, __imm,
9388 (__v2df)
9389 _mm_setzero_pd (),
9390 (__mmask8) -1,
9391 __R);
9392}
9393
9394extern __inline __m128d
9395__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9397 __m128d __D, const int __imm, const int __R)
9398{
9399 return (__m128d)
9400 __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
9401 (__v2df) __D, __imm,
9402 (__v2df) __A,
9403 (__mmask8) __B,
9404 __R);
9405}
9406
9407extern __inline __m128d
9408__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9410 const int __imm, const int __R)
9411{
9412 return (__m128d)
9413 __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
9414 (__v2df) __C, __imm,
9415 (__v2df)
9416 _mm_setzero_pd (),
9417 (__mmask8) __A,
9418 __R);
9419}
9420
9421#else
9422#define _mm512_roundscale_round_ps(A, B, R) \
9423 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
9424 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), R))
9425#define _mm512_mask_roundscale_round_ps(A, B, C, D, R) \
9426 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
9427 (int)(D), \
9428 (__v16sf)(__m512)(A), \
9429 (__mmask16)(B), R))
9430#define _mm512_maskz_roundscale_round_ps(A, B, C, R) \
9431 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
9432 (int)(C), \
9433 (__v16sf)_mm512_setzero_ps(),\
9434 (__mmask16)(A), R))
9435#define _mm512_roundscale_round_pd(A, B, R) \
9436 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
9437 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), R))
9438#define _mm512_mask_roundscale_round_pd(A, B, C, D, R) \
9439 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
9440 (int)(D), \
9441 (__v8df)(__m512d)(A), \
9442 (__mmask8)(B), R))
9443#define _mm512_maskz_roundscale_round_pd(A, B, C, R) \
9444 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
9445 (int)(C), \
9446 (__v8df)_mm512_setzero_pd(),\
9447 (__mmask8)(A), R))
9448#define _mm_roundscale_round_ss(A, B, I, R) \
9449 ((__m128) \
9450 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A), \
9451 (__v4sf) (__m128) (B), \
9452 (int) (I), \
9453 (__v4sf) _mm_setzero_ps (), \
9454 (__mmask8) (-1), \
9455 (int) (R)))
9456#define _mm_mask_roundscale_round_ss(A, U, B, C, I, R) \
9457 ((__m128) \
9458 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B), \
9459 (__v4sf) (__m128) (C), \
9460 (int) (I), \
9461 (__v4sf) (__m128) (A), \
9462 (__mmask8) (U), \
9463 (int) (R)))
9464#define _mm_maskz_roundscale_round_ss(U, A, B, I, R) \
9465 ((__m128) \
9466 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A), \
9467 (__v4sf) (__m128) (B), \
9468 (int) (I), \
9469 (__v4sf) _mm_setzero_ps (), \
9470 (__mmask8) (U), \
9471 (int) (R)))
9472#define _mm_roundscale_round_sd(A, B, I, R) \
9473 ((__m128d) \
9474 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A), \
9475 (__v2df) (__m128d) (B), \
9476 (int) (I), \
9477 (__v2df) _mm_setzero_pd (), \
9478 (__mmask8) (-1), \
9479 (int) (R)))
9480#define _mm_mask_roundscale_round_sd(A, U, B, C, I, R) \
9481 ((__m128d) \
9482 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B), \
9483 (__v2df) (__m128d) (C), \
9484 (int) (I), \
9485 (__v2df) (__m128d) (A), \
9486 (__mmask8) (U), \
9487 (int) (R)))
9488#define _mm_maskz_roundscale_round_sd(U, A, B, I, R) \
9489 ((__m128d) \
9490 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A), \
9491 (__v2df) (__m128d) (B), \
9492 (int) (I), \
9493 (__v2df) _mm_setzero_pd (), \
9494 (__mmask8) (U), \
9495 (int) (R)))
9496#endif
9497
9498extern __inline __m512
9499__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9500_mm512_floor_ps (__m512 __A)
9501{
9502 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9504 (__v16sf) __A, -1,
9506}
9507
9508extern __inline __m512d
9509__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9510_mm512_floor_pd (__m512d __A)
9511{
9512 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9514 (__v8df) __A, -1,
9516}
9517
9518extern __inline __m512
9519__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9520_mm512_ceil_ps (__m512 __A)
9521{
9522 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9524 (__v16sf) __A, -1,
9526}
9527
9528extern __inline __m512d
9529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9530_mm512_ceil_pd (__m512d __A)
9531{
9532 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9534 (__v8df) __A, -1,
9536}
9537
9538extern __inline __m512
9539__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9540_mm512_mask_floor_ps (__m512 __W, __mmask16 __U, __m512 __A)
9541{
9542 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9544 (__v16sf) __W, __U,
9546}
9547
9548extern __inline __m512d
9549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9550_mm512_mask_floor_pd (__m512d __W, __mmask8 __U, __m512d __A)
9551{
9552 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9554 (__v8df) __W, __U,
9556}
9557
9558extern __inline __m512
9559__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9560_mm512_mask_ceil_ps (__m512 __W, __mmask16 __U, __m512 __A)
9561{
9562 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A,
9564 (__v16sf) __W, __U,
9566}
9567
9568extern __inline __m512d
9569__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9570_mm512_mask_ceil_pd (__m512d __W, __mmask8 __U, __m512d __A)
9571{
9572 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A,
9574 (__v8df) __W, __U,
9576}
9577
9578#ifdef __OPTIMIZE__
9579extern __inline __m512i
9580__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9581_mm512_alignr_epi32 (__m512i __A, __m512i __B, const int __imm)
9582{
9583 return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9584 (__v16si) __B, __imm,
9585 (__v16si)
9586 _mm512_undefined_epi32 (),
9587 (__mmask16) -1);
9588}
9589
9590extern __inline __m512i
9591__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9592_mm512_mask_alignr_epi32 (__m512i __W, __mmask16 __U, __m512i __A,
9593 __m512i __B, const int __imm)
9594{
9595 return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9596 (__v16si) __B, __imm,
9597 (__v16si) __W,
9598 (__mmask16) __U);
9599}
9600
9601extern __inline __m512i
9602__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9603_mm512_maskz_alignr_epi32 (__mmask16 __U, __m512i __A, __m512i __B,
9604 const int __imm)
9605{
9606 return (__m512i) __builtin_ia32_alignd512_mask ((__v16si) __A,
9607 (__v16si) __B, __imm,
9608 (__v16si)
9609 _mm512_setzero_si512 (),
9610 (__mmask16) __U);
9611}
9612
9613extern __inline __m512i
9614__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9615_mm512_alignr_epi64 (__m512i __A, __m512i __B, const int __imm)
9616{
9617 return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9618 (__v8di) __B, __imm,
9619 (__v8di)
9620 _mm512_undefined_epi32 (),
9621 (__mmask8) -1);
9622}
9623
9624extern __inline __m512i
9625__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9626_mm512_mask_alignr_epi64 (__m512i __W, __mmask8 __U, __m512i __A,
9627 __m512i __B, const int __imm)
9628{
9629 return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9630 (__v8di) __B, __imm,
9631 (__v8di) __W,
9632 (__mmask8) __U);
9633}
9634
9635extern __inline __m512i
9636__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9637_mm512_maskz_alignr_epi64 (__mmask8 __U, __m512i __A, __m512i __B,
9638 const int __imm)
9639{
9640 return (__m512i) __builtin_ia32_alignq512_mask ((__v8di) __A,
9641 (__v8di) __B, __imm,
9642 (__v8di)
9643 _mm512_setzero_si512 (),
9644 (__mmask8) __U);
9645}
9646#else
9647#define _mm512_alignr_epi32(X, Y, C) \
9648 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
9649 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_undefined_epi32 (),\
9650 (__mmask16)-1))
9651
9652#define _mm512_mask_alignr_epi32(W, U, X, Y, C) \
9653 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
9654 (__v16si)(__m512i)(Y), (int)(C), (__v16si)(__m512i)(W), \
9655 (__mmask16)(U)))
9656
9657#define _mm512_maskz_alignr_epi32(U, X, Y, C) \
9658 ((__m512i)__builtin_ia32_alignd512_mask ((__v16si)(__m512i)(X), \
9659 (__v16si)(__m512i)(Y), (int)(C), (__v16si)_mm512_setzero_si512 (),\
9660 (__mmask16)(U)))
9661
9662#define _mm512_alignr_epi64(X, Y, C) \
9663 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
9664 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_undefined_epi32 (), \
9665 (__mmask8)-1))
9666
9667#define _mm512_mask_alignr_epi64(W, U, X, Y, C) \
9668 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
9669 (__v8di)(__m512i)(Y), (int)(C), (__v8di)(__m512i)(W), (__mmask8)(U)))
9670
9671#define _mm512_maskz_alignr_epi64(U, X, Y, C) \
9672 ((__m512i)__builtin_ia32_alignq512_mask ((__v8di)(__m512i)(X), \
9673 (__v8di)(__m512i)(Y), (int)(C), (__v8di)_mm512_setzero_si512 (),\
9674 (__mmask8)(U)))
9675#endif
9676
9677extern __inline __mmask16
9678__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9679_mm512_cmpeq_epi32_mask (__m512i __A, __m512i __B)
9680{
9681 return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9682 (__v16si) __B,
9683 (__mmask16) -1);
9684}
9685
9686extern __inline __mmask16
9687__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9688_mm512_mask_cmpeq_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9689{
9690 return (__mmask16) __builtin_ia32_pcmpeqd512_mask ((__v16si) __A,
9691 (__v16si) __B, __U);
9692}
9693
9694extern __inline __mmask8
9695__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9696_mm512_mask_cmpeq_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9697{
9698 return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9699 (__v8di) __B, __U);
9700}
9701
9702extern __inline __mmask8
9703__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9704_mm512_cmpeq_epi64_mask (__m512i __A, __m512i __B)
9705{
9706 return (__mmask8) __builtin_ia32_pcmpeqq512_mask ((__v8di) __A,
9707 (__v8di) __B,
9708 (__mmask8) -1);
9709}
9710
9711extern __inline __mmask16
9712__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9713_mm512_cmpgt_epi32_mask (__m512i __A, __m512i __B)
9714{
9715 return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9716 (__v16si) __B,
9717 (__mmask16) -1);
9718}
9719
9720extern __inline __mmask16
9721__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9722_mm512_mask_cmpgt_epi32_mask (__mmask16 __U, __m512i __A, __m512i __B)
9723{
9724 return (__mmask16) __builtin_ia32_pcmpgtd512_mask ((__v16si) __A,
9725 (__v16si) __B, __U);
9726}
9727
9728extern __inline __mmask8
9729__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9730_mm512_mask_cmpgt_epi64_mask (__mmask8 __U, __m512i __A, __m512i __B)
9731{
9732 return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9733 (__v8di) __B, __U);
9734}
9735
9736extern __inline __mmask8
9737__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9738_mm512_cmpgt_epi64_mask (__m512i __A, __m512i __B)
9739{
9740 return (__mmask8) __builtin_ia32_pcmpgtq512_mask ((__v8di) __A,
9741 (__v8di) __B,
9742 (__mmask8) -1);
9743}
9744
9745extern __inline __mmask16
9746__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9747_mm512_cmpge_epi32_mask (__m512i __X, __m512i __Y)
9748{
9749 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9750 (__v16si) __Y, 5,
9751 (__mmask16) -1);
9752}
9753
9754extern __inline __mmask16
9755__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9756_mm512_mask_cmpge_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9757{
9758 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9759 (__v16si) __Y, 5,
9760 (__mmask16) __M);
9761}
9762
9763extern __inline __mmask16
9764__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9765_mm512_mask_cmpge_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9766{
9767 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9768 (__v16si) __Y, 5,
9769 (__mmask16) __M);
9770}
9771
9772extern __inline __mmask16
9773__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9774_mm512_cmpge_epu32_mask (__m512i __X, __m512i __Y)
9775{
9776 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9777 (__v16si) __Y, 5,
9778 (__mmask16) -1);
9779}
9780
9781extern __inline __mmask8
9782__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9783_mm512_mask_cmpge_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9784{
9785 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9786 (__v8di) __Y, 5,
9787 (__mmask8) __M);
9788}
9789
9790extern __inline __mmask8
9791__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9792_mm512_cmpge_epi64_mask (__m512i __X, __m512i __Y)
9793{
9794 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9795 (__v8di) __Y, 5,
9796 (__mmask8) -1);
9797}
9798
9799extern __inline __mmask8
9800__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9801_mm512_mask_cmpge_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9802{
9803 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9804 (__v8di) __Y, 5,
9805 (__mmask8) __M);
9806}
9807
9808extern __inline __mmask8
9809__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9810_mm512_cmpge_epu64_mask (__m512i __X, __m512i __Y)
9811{
9812 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9813 (__v8di) __Y, 5,
9814 (__mmask8) -1);
9815}
9816
9817extern __inline __mmask16
9818__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9819_mm512_mask_cmple_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9820{
9821 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9822 (__v16si) __Y, 2,
9823 (__mmask16) __M);
9824}
9825
9826extern __inline __mmask16
9827__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9828_mm512_cmple_epi32_mask (__m512i __X, __m512i __Y)
9829{
9830 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9831 (__v16si) __Y, 2,
9832 (__mmask16) -1);
9833}
9834
9835extern __inline __mmask16
9836__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9837_mm512_mask_cmple_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9838{
9839 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9840 (__v16si) __Y, 2,
9841 (__mmask16) __M);
9842}
9843
9844extern __inline __mmask16
9845__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9846_mm512_cmple_epu32_mask (__m512i __X, __m512i __Y)
9847{
9848 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9849 (__v16si) __Y, 2,
9850 (__mmask16) -1);
9851}
9852
9853extern __inline __mmask8
9854__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9855_mm512_mask_cmple_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9856{
9857 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9858 (__v8di) __Y, 2,
9859 (__mmask8) __M);
9860}
9861
9862extern __inline __mmask8
9863__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9864_mm512_cmple_epi64_mask (__m512i __X, __m512i __Y)
9865{
9866 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9867 (__v8di) __Y, 2,
9868 (__mmask8) -1);
9869}
9870
9871extern __inline __mmask8
9872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9873_mm512_mask_cmple_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9874{
9875 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9876 (__v8di) __Y, 2,
9877 (__mmask8) __M);
9878}
9879
9880extern __inline __mmask8
9881__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9882_mm512_cmple_epu64_mask (__m512i __X, __m512i __Y)
9883{
9884 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9885 (__v8di) __Y, 2,
9886 (__mmask8) -1);
9887}
9888
9889extern __inline __mmask16
9890__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9891_mm512_mask_cmplt_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9892{
9893 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9894 (__v16si) __Y, 1,
9895 (__mmask16) __M);
9896}
9897
9898extern __inline __mmask16
9899__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9900_mm512_cmplt_epi32_mask (__m512i __X, __m512i __Y)
9901{
9902 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9903 (__v16si) __Y, 1,
9904 (__mmask16) -1);
9905}
9906
9907extern __inline __mmask16
9908__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9909_mm512_mask_cmplt_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9910{
9911 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9912 (__v16si) __Y, 1,
9913 (__mmask16) __M);
9914}
9915
9916extern __inline __mmask16
9917__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9918_mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y)
9919{
9920 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9921 (__v16si) __Y, 1,
9922 (__mmask16) -1);
9923}
9924
9925extern __inline __mmask8
9926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9927_mm512_mask_cmplt_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9928{
9929 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9930 (__v8di) __Y, 1,
9931 (__mmask8) __M);
9932}
9933
9934extern __inline __mmask8
9935__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9936_mm512_cmplt_epi64_mask (__m512i __X, __m512i __Y)
9937{
9938 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
9939 (__v8di) __Y, 1,
9940 (__mmask8) -1);
9941}
9942
9943extern __inline __mmask8
9944__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9945_mm512_mask_cmplt_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
9946{
9947 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9948 (__v8di) __Y, 1,
9949 (__mmask8) __M);
9950}
9951
9952extern __inline __mmask8
9953__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9954_mm512_cmplt_epu64_mask (__m512i __X, __m512i __Y)
9955{
9956 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
9957 (__v8di) __Y, 1,
9958 (__mmask8) -1);
9959}
9960
9961extern __inline __mmask16
9962__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9963_mm512_cmpneq_epi32_mask (__m512i __X, __m512i __Y)
9964{
9965 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9966 (__v16si) __Y, 4,
9967 (__mmask16) -1);
9968}
9969
9970extern __inline __mmask16
9971__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9972_mm512_mask_cmpneq_epi32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9973{
9974 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
9975 (__v16si) __Y, 4,
9976 (__mmask16) __M);
9977}
9978
9979extern __inline __mmask16
9980__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9981_mm512_mask_cmpneq_epu32_mask (__mmask16 __M, __m512i __X, __m512i __Y)
9982{
9983 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9984 (__v16si) __Y, 4,
9985 (__mmask16) __M);
9986}
9987
9988extern __inline __mmask16
9989__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9990_mm512_cmpneq_epu32_mask (__m512i __X, __m512i __Y)
9991{
9992 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
9993 (__v16si) __Y, 4,
9994 (__mmask16) -1);
9995}
9996
9997extern __inline __mmask8
9998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
9999_mm512_mask_cmpneq_epi64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
10000{
10001 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
10002 (__v8di) __Y, 4,
10003 (__mmask8) __M);
10004}
10005
10006extern __inline __mmask8
10007__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10008_mm512_cmpneq_epi64_mask (__m512i __X, __m512i __Y)
10009{
10010 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
10011 (__v8di) __Y, 4,
10012 (__mmask8) -1);
10013}
10014
10015extern __inline __mmask8
10016__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10017_mm512_mask_cmpneq_epu64_mask (__mmask8 __M, __m512i __X, __m512i __Y)
10018{
10019 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
10020 (__v8di) __Y, 4,
10021 (__mmask8) __M);
10022}
10023
10024extern __inline __mmask8
10025__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10026_mm512_cmpneq_epu64_mask (__m512i __X, __m512i __Y)
10027{
10028 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
10029 (__v8di) __Y, 4,
10030 (__mmask8) -1);
10031}
10032
10033#define _MM_CMPINT_EQ 0x0
10034#define _MM_CMPINT_LT 0x1
10035#define _MM_CMPINT_LE 0x2
10036#define _MM_CMPINT_UNUSED 0x3
10037#define _MM_CMPINT_NE 0x4
10038#define _MM_CMPINT_NLT 0x5
10039#define _MM_CMPINT_GE 0x5
10040#define _MM_CMPINT_NLE 0x6
10041#define _MM_CMPINT_GT 0x6
10042
10043#ifdef __OPTIMIZE__
10044extern __inline __mmask16
10045__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10046_kshiftli_mask16 (__mmask16 __A, unsigned int __B)
10047{
10048 return (__mmask16) __builtin_ia32_kshiftlihi ((__mmask16) __A,
10049 (__mmask8) __B);
10050}
10051
10052extern __inline __mmask16
10053__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10054_kshiftri_mask16 (__mmask16 __A, unsigned int __B)
10055{
10056 return (__mmask16) __builtin_ia32_kshiftrihi ((__mmask16) __A,
10057 (__mmask8) __B);
10058}
10059
10060extern __inline __mmask8
10061__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10062_mm512_cmp_epi64_mask (__m512i __X, __m512i __Y, const int __P)
10063{
10064 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
10065 (__v8di) __Y, __P,
10066 (__mmask8) -1);
10067}
10068
10069extern __inline __mmask16
10070__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10071_mm512_cmp_epi32_mask (__m512i __X, __m512i __Y, const int __P)
10072{
10073 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
10074 (__v16si) __Y, __P,
10075 (__mmask16) -1);
10076}
10077
10078extern __inline __mmask8
10079__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10080_mm512_cmp_epu64_mask (__m512i __X, __m512i __Y, const int __P)
10081{
10082 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
10083 (__v8di) __Y, __P,
10084 (__mmask8) -1);
10085}
10086
10087extern __inline __mmask16
10088__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10089_mm512_cmp_epu32_mask (__m512i __X, __m512i __Y, const int __P)
10090{
10091 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
10092 (__v16si) __Y, __P,
10093 (__mmask16) -1);
10094}
10095
10096extern __inline __mmask8
10097__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10098_mm512_cmp_round_pd_mask (__m512d __X, __m512d __Y, const int __P,
10099 const int __R)
10100{
10101 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
10102 (__v8df) __Y, __P,
10103 (__mmask8) -1, __R);
10104}
10105
10106extern __inline __mmask16
10107__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10108_mm512_cmp_round_ps_mask (__m512 __X, __m512 __Y, const int __P, const int __R)
10109{
10110 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
10111 (__v16sf) __Y, __P,
10112 (__mmask16) -1, __R);
10113}
10114
10115extern __inline __mmask8
10116__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10117_mm512_mask_cmp_epi64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
10118 const int __P)
10119{
10120 return (__mmask8) __builtin_ia32_cmpq512_mask ((__v8di) __X,
10121 (__v8di) __Y, __P,
10122 (__mmask8) __U);
10123}
10124
10125extern __inline __mmask16
10126__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10128 const int __P)
10129{
10130 return (__mmask16) __builtin_ia32_cmpd512_mask ((__v16si) __X,
10131 (__v16si) __Y, __P,
10132 (__mmask16) __U);
10133}
10134
10135extern __inline __mmask8
10136__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10137_mm512_mask_cmp_epu64_mask (__mmask8 __U, __m512i __X, __m512i __Y,
10138 const int __P)
10139{
10140 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __X,
10141 (__v8di) __Y, __P,
10142 (__mmask8) __U);
10143}
10144
10145extern __inline __mmask16
10146__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10148 const int __P)
10149{
10150 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __X,
10151 (__v16si) __Y, __P,
10152 (__mmask16) __U);
10153}
10154
10155extern __inline __mmask8
10156__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10158 const int __P, const int __R)
10159{
10160 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
10161 (__v8df) __Y, __P,
10162 (__mmask8) __U, __R);
10163}
10164
10165extern __inline __mmask16
10166__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10168 const int __P, const int __R)
10169{
10170 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
10171 (__v16sf) __Y, __P,
10172 (__mmask16) __U, __R);
10173}
10174
10175extern __inline __mmask8
10176__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10177_mm_cmp_round_sd_mask (__m128d __X, __m128d __Y, const int __P, const int __R)
10178{
10179 return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
10180 (__v2df) __Y, __P,
10181 (__mmask8) -1, __R);
10182}
10183
10184extern __inline __mmask8
10185__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10186_mm_mask_cmp_round_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y,
10187 const int __P, const int __R)
10188{
10189 return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
10190 (__v2df) __Y, __P,
10191 (__mmask8) __M, __R);
10192}
10193
10194extern __inline __mmask8
10195__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10196_mm_cmp_round_ss_mask (__m128 __X, __m128 __Y, const int __P, const int __R)
10197{
10198 return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
10199 (__v4sf) __Y, __P,
10200 (__mmask8) -1, __R);
10201}
10202
10203extern __inline __mmask8
10204__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10206 const int __P, const int __R)
10207{
10208 return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
10209 (__v4sf) __Y, __P,
10210 (__mmask8) __M, __R);
10211}
10212
10213#else
10214#define _kshiftli_mask16(X, Y) \
10215 ((__mmask16) __builtin_ia32_kshiftlihi ((__mmask16)(X), (__mmask8)(Y)))
10216
10217#define _kshiftri_mask16(X, Y) \
10218 ((__mmask16) __builtin_ia32_kshiftrihi ((__mmask16)(X), (__mmask8)(Y)))
10219
10220#define _mm512_cmp_epi64_mask(X, Y, P) \
10221 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
10222 (__v8di)(__m512i)(Y), (int)(P),\
10223 (__mmask8)-1))
10224
10225#define _mm512_cmp_epi32_mask(X, Y, P) \
10226 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
10227 (__v16si)(__m512i)(Y), (int)(P), \
10228 (__mmask16)-1))
10229
10230#define _mm512_cmp_epu64_mask(X, Y, P) \
10231 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
10232 (__v8di)(__m512i)(Y), (int)(P),\
10233 (__mmask8)-1))
10234
10235#define _mm512_cmp_epu32_mask(X, Y, P) \
10236 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
10237 (__v16si)(__m512i)(Y), (int)(P), \
10238 (__mmask16)-1))
10239
10240#define _mm512_cmp_round_pd_mask(X, Y, P, R) \
10241 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
10242 (__v8df)(__m512d)(Y), (int)(P),\
10243 (__mmask8)-1, R))
10244
10245#define _mm512_cmp_round_ps_mask(X, Y, P, R) \
10246 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
10247 (__v16sf)(__m512)(Y), (int)(P),\
10248 (__mmask16)-1, R))
10249
10250#define _mm512_mask_cmp_epi64_mask(M, X, Y, P) \
10251 ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X), \
10252 (__v8di)(__m512i)(Y), (int)(P),\
10253 (__mmask8)(M)))
10254
10255#define _mm512_mask_cmp_epi32_mask(M, X, Y, P) \
10256 ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X), \
10257 (__v16si)(__m512i)(Y), (int)(P), \
10258 (__mmask16)(M)))
10259
10260#define _mm512_mask_cmp_epu64_mask(M, X, Y, P) \
10261 ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X), \
10262 (__v8di)(__m512i)(Y), (int)(P),\
10263 (__mmask8)(M)))
10264
10265#define _mm512_mask_cmp_epu32_mask(M, X, Y, P) \
10266 ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X), \
10267 (__v16si)(__m512i)(Y), (int)(P), \
10268 (__mmask16)(M)))
10269
10270#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R) \
10271 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
10272 (__v8df)(__m512d)(Y), (int)(P),\
10273 (__mmask8)(M), R))
10274
10275#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R) \
10276 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
10277 (__v16sf)(__m512)(Y), (int)(P),\
10278 (__mmask16)(M), R))
10279
10280#define _mm_cmp_round_sd_mask(X, Y, P, R) \
10281 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
10282 (__v2df)(__m128d)(Y), (int)(P),\
10283 (__mmask8)-1, R))
10284
10285#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R) \
10286 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
10287 (__v2df)(__m128d)(Y), (int)(P),\
10288 (M), R))
10289
10290#define _mm_cmp_round_ss_mask(X, Y, P, R) \
10291 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
10292 (__v4sf)(__m128)(Y), (int)(P), \
10293 (__mmask8)-1, R))
10294
10295#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R) \
10296 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
10297 (__v4sf)(__m128)(Y), (int)(P), \
10298 (M), R))
10299#endif
10300
10301#ifdef __OPTIMIZE__
10302extern __inline __m512
10303__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10304_mm512_i32gather_ps (__m512i __index, void const *__addr, int __scale)
10305{
10306 __m512 __v1_old = _mm512_undefined_ps ();
10307 __mmask16 __mask = 0xFFFF;
10308
10309 return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10310 __addr,
10311 (__v16si) __index,
10312 __mask, __scale);
10313}
10314
10315extern __inline __m512
10316__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10317_mm512_mask_i32gather_ps (__m512 __v1_old, __mmask16 __mask,
10318 __m512i __index, void const *__addr, int __scale)
10319{
10320 return (__m512) __builtin_ia32_gathersiv16sf ((__v16sf) __v1_old,
10321 __addr,
10322 (__v16si) __index,
10323 __mask, __scale);
10324}
10325
10326extern __inline __m512d
10327__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10328_mm512_i32gather_pd (__m256i __index, void const *__addr, int __scale)
10329{
10330 __m512d __v1_old = _mm512_undefined_pd ();
10331 __mmask8 __mask = 0xFF;
10332
10333 return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10334 __addr,
10335 (__v8si) __index, __mask,
10336 __scale);
10337}
10338
10339extern __inline __m512d
10340__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10341_mm512_mask_i32gather_pd (__m512d __v1_old, __mmask8 __mask,
10342 __m256i __index, void const *__addr, int __scale)
10343{
10344 return (__m512d) __builtin_ia32_gathersiv8df ((__v8df) __v1_old,
10345 __addr,
10346 (__v8si) __index,
10347 __mask, __scale);
10348}
10349
10350extern __inline __m256
10351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10352_mm512_i64gather_ps (__m512i __index, void const *__addr, int __scale)
10353{
10354 __m256 __v1_old = _mm256_undefined_ps ();
10355 __mmask8 __mask = 0xFF;
10356
10357 return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10358 __addr,
10359 (__v8di) __index, __mask,
10360 __scale);
10361}
10362
10363extern __inline __m256
10364__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10365_mm512_mask_i64gather_ps (__m256 __v1_old, __mmask8 __mask,
10366 __m512i __index, void const *__addr, int __scale)
10367{
10368 return (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf) __v1_old,
10369 __addr,
10370 (__v8di) __index,
10371 __mask, __scale);
10372}
10373
10374extern __inline __m512d
10375__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10376_mm512_i64gather_pd (__m512i __index, void const *__addr, int __scale)
10377{
10378 __m512d __v1_old = _mm512_undefined_pd ();
10379 __mmask8 __mask = 0xFF;
10380
10381 return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10382 __addr,
10383 (__v8di) __index, __mask,
10384 __scale);
10385}
10386
10387extern __inline __m512d
10388__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10389_mm512_mask_i64gather_pd (__m512d __v1_old, __mmask8 __mask,
10390 __m512i __index, void const *__addr, int __scale)
10391{
10392 return (__m512d) __builtin_ia32_gatherdiv8df ((__v8df) __v1_old,
10393 __addr,
10394 (__v8di) __index,
10395 __mask, __scale);
10396}
10397
10398extern __inline __m512i
10399__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10400_mm512_i32gather_epi32 (__m512i __index, void const *__addr, int __scale)
10401{
10402 __m512i __v1_old = _mm512_undefined_epi32 ();
10403 __mmask16 __mask = 0xFFFF;
10404
10405 return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10406 __addr,
10407 (__v16si) __index,
10408 __mask, __scale);
10409}
10410
10411extern __inline __m512i
10412__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10413_mm512_mask_i32gather_epi32 (__m512i __v1_old, __mmask16 __mask,
10414 __m512i __index, void const *__addr, int __scale)
10415{
10416 return (__m512i) __builtin_ia32_gathersiv16si ((__v16si) __v1_old,
10417 __addr,
10418 (__v16si) __index,
10419 __mask, __scale);
10420}
10421
10422extern __inline __m512i
10423__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10424_mm512_i32gather_epi64 (__m256i __index, void const *__addr, int __scale)
10425{
10426 __m512i __v1_old = _mm512_undefined_epi32 ();
10427 __mmask8 __mask = 0xFF;
10428
10429 return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10430 __addr,
10431 (__v8si) __index, __mask,
10432 __scale);
10433}
10434
10435extern __inline __m512i
10436__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10437_mm512_mask_i32gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10438 __m256i __index, void const *__addr,
10439 int __scale)
10440{
10441 return (__m512i) __builtin_ia32_gathersiv8di ((__v8di) __v1_old,
10442 __addr,
10443 (__v8si) __index,
10444 __mask, __scale);
10445}
10446
10447extern __inline __m256i
10448__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10449_mm512_i64gather_epi32 (__m512i __index, void const *__addr, int __scale)
10450{
10451 __m256i __v1_old = _mm256_undefined_si256 ();
10452 __mmask8 __mask = 0xFF;
10453
10454 return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10455 __addr,
10456 (__v8di) __index,
10457 __mask, __scale);
10458}
10459
10460extern __inline __m256i
10461__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10462_mm512_mask_i64gather_epi32 (__m256i __v1_old, __mmask8 __mask,
10463 __m512i __index, void const *__addr, int __scale)
10464{
10465 return (__m256i) __builtin_ia32_gatherdiv16si ((__v8si) __v1_old,
10466 __addr,
10467 (__v8di) __index,
10468 __mask, __scale);
10469}
10470
10471extern __inline __m512i
10472__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10473_mm512_i64gather_epi64 (__m512i __index, void const *__addr, int __scale)
10474{
10475 __m512i __v1_old = _mm512_undefined_epi32 ();
10476 __mmask8 __mask = 0xFF;
10477
10478 return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10479 __addr,
10480 (__v8di) __index, __mask,
10481 __scale);
10482}
10483
10484extern __inline __m512i
10485__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10486_mm512_mask_i64gather_epi64 (__m512i __v1_old, __mmask8 __mask,
10487 __m512i __index, void const *__addr,
10488 int __scale)
10489{
10490 return (__m512i) __builtin_ia32_gatherdiv8di ((__v8di) __v1_old,
10491 __addr,
10492 (__v8di) __index,
10493 __mask, __scale);
10494}
10495
10496extern __inline void
10497__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10498_mm512_i32scatter_ps (void *__addr, __m512i __index, __m512 __v1, int __scale)
10499{
10500 __builtin_ia32_scattersiv16sf (__addr, (__mmask16) 0xFFFF,
10501 (__v16si) __index, (__v16sf) __v1, __scale);
10502}
10503
10504extern __inline void
10505__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10506_mm512_mask_i32scatter_ps (void *__addr, __mmask16 __mask,
10507 __m512i __index, __m512 __v1, int __scale)
10508{
10509 __builtin_ia32_scattersiv16sf (__addr, __mask, (__v16si) __index,
10510 (__v16sf) __v1, __scale);
10511}
10512
10513extern __inline void
10514__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10515_mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
10516 int __scale)
10517{
10518 __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
10519 (__v8si) __index, (__v8df) __v1, __scale);
10520}
10521
10522extern __inline void
10523__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10524_mm512_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
10525 __m256i __index, __m512d __v1, int __scale)
10526{
10527 __builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,
10528 (__v8df) __v1, __scale);
10529}
10530
10531extern __inline void
10532__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10533_mm512_i64scatter_ps (void *__addr, __m512i __index, __m256 __v1, int __scale)
10534{
10535 __builtin_ia32_scatterdiv16sf (__addr, (__mmask8) 0xFF,
10536 (__v8di) __index, (__v8sf) __v1, __scale);
10537}
10538
10539extern __inline void
10540__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10541_mm512_mask_i64scatter_ps (void *__addr, __mmask8 __mask,
10542 __m512i __index, __m256 __v1, int __scale)
10543{
10544 __builtin_ia32_scatterdiv16sf (__addr, __mask, (__v8di) __index,
10545 (__v8sf) __v1, __scale);
10546}
10547
10548extern __inline void
10549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10550_mm512_i64scatter_pd (void *__addr, __m512i __index, __m512d __v1,
10551 int __scale)
10552{
10553 __builtin_ia32_scatterdiv8df (__addr, (__mmask8) 0xFF,
10554 (__v8di) __index, (__v8df) __v1, __scale);
10555}
10556
10557extern __inline void
10558__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10559_mm512_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
10560 __m512i __index, __m512d __v1, int __scale)
10561{
10562 __builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,
10563 (__v8df) __v1, __scale);
10564}
10565
10566extern __inline void
10567__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10568_mm512_i32scatter_epi32 (void *__addr, __m512i __index,
10569 __m512i __v1, int __scale)
10570{
10571 __builtin_ia32_scattersiv16si (__addr, (__mmask16) 0xFFFF,
10572 (__v16si) __index, (__v16si) __v1, __scale);
10573}
10574
10575extern __inline void
10576__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10577_mm512_mask_i32scatter_epi32 (void *__addr, __mmask16 __mask,
10578 __m512i __index, __m512i __v1, int __scale)
10579{
10580 __builtin_ia32_scattersiv16si (__addr, __mask, (__v16si) __index,
10581 (__v16si) __v1, __scale);
10582}
10583
10584extern __inline void
10585__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10586_mm512_i32scatter_epi64 (void *__addr, __m256i __index,
10587 __m512i __v1, int __scale)
10588{
10589 __builtin_ia32_scattersiv8di (__addr, (__mmask8) 0xFF,
10590 (__v8si) __index, (__v8di) __v1, __scale);
10591}
10592
10593extern __inline void
10594__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10595_mm512_mask_i32scatter_epi64 (void *__addr, __mmask8 __mask,
10596 __m256i __index, __m512i __v1, int __scale)
10597{
10598 __builtin_ia32_scattersiv8di (__addr, __mask, (__v8si) __index,
10599 (__v8di) __v1, __scale);
10600}
10601
10602extern __inline void
10603__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10604_mm512_i64scatter_epi32 (void *__addr, __m512i __index,
10605 __m256i __v1, int __scale)
10606{
10607 __builtin_ia32_scatterdiv16si (__addr, (__mmask8) 0xFF,
10608 (__v8di) __index, (__v8si) __v1, __scale);
10609}
10610
10611extern __inline void
10612__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10613_mm512_mask_i64scatter_epi32 (void *__addr, __mmask8 __mask,
10614 __m512i __index, __m256i __v1, int __scale)
10615{
10616 __builtin_ia32_scatterdiv16si (__addr, __mask, (__v8di) __index,
10617 (__v8si) __v1, __scale);
10618}
10619
10620extern __inline void
10621__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10622_mm512_i64scatter_epi64 (void *__addr, __m512i __index,
10623 __m512i __v1, int __scale)
10624{
10625 __builtin_ia32_scatterdiv8di (__addr, (__mmask8) 0xFF,
10626 (__v8di) __index, (__v8di) __v1, __scale);
10627}
10628
10629extern __inline void
10630__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10631_mm512_mask_i64scatter_epi64 (void *__addr, __mmask8 __mask,
10632 __m512i __index, __m512i __v1, int __scale)
10633{
10634 __builtin_ia32_scatterdiv8di (__addr, __mask, (__v8di) __index,
10635 (__v8di) __v1, __scale);
10636}
10637#else
10638#define _mm512_i32gather_ps(INDEX, ADDR, SCALE) \
10639 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)_mm512_undefined_ps(),\
10640 (void const *) (ADDR), \
10641 (__v16si)(__m512i) (INDEX), \
10642 (__mmask16)0xFFFF, \
10643 (int) (SCALE))
10644
10645#define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
10646 (__m512) __builtin_ia32_gathersiv16sf ((__v16sf)(__m512) (V1OLD), \
10647 (void const *) (ADDR), \
10648 (__v16si)(__m512i) (INDEX), \
10649 (__mmask16) (MASK), \
10650 (int) (SCALE))
10651
10652#define _mm512_i32gather_pd(INDEX, ADDR, SCALE) \
10653 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)_mm512_undefined_pd(), \
10654 (void const *) (ADDR), \
10655 (__v8si)(__m256i) (INDEX), \
10656 (__mmask8)0xFF, (int) (SCALE))
10657
10658#define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
10659 (__m512d) __builtin_ia32_gathersiv8df ((__v8df)(__m512d) (V1OLD), \
10660 (void const *) (ADDR), \
10661 (__v8si)(__m256i) (INDEX), \
10662 (__mmask8) (MASK), \
10663 (int) (SCALE))
10664
10665#define _mm512_i64gather_ps(INDEX, ADDR, SCALE) \
10666 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)_mm256_undefined_ps(), \
10667 (void const *) (ADDR), \
10668 (__v8di)(__m512i) (INDEX), \
10669 (__mmask8)0xFF, (int) (SCALE))
10670
10671#define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE) \
10672 (__m256) __builtin_ia32_gatherdiv16sf ((__v8sf)(__m256) (V1OLD), \
10673 (void const *) (ADDR), \
10674 (__v8di)(__m512i) (INDEX), \
10675 (__mmask8) (MASK), \
10676 (int) (SCALE))
10677
10678#define _mm512_i64gather_pd(INDEX, ADDR, SCALE) \
10679 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)_mm512_undefined_pd(), \
10680 (void const *) (ADDR), \
10681 (__v8di)(__m512i) (INDEX), \
10682 (__mmask8)0xFF, (int) (SCALE))
10683
10684#define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE) \
10685 (__m512d) __builtin_ia32_gatherdiv8df ((__v8df)(__m512d) (V1OLD), \
10686 (void const *) (ADDR), \
10687 (__v8di)(__m512i) (INDEX), \
10688 (__mmask8) (MASK), \
10689 (int) (SCALE))
10690
10691#define _mm512_i32gather_epi32(INDEX, ADDR, SCALE) \
10692 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)_mm512_undefined_epi32 (),\
10693 (void const *) (ADDR), \
10694 (__v16si)(__m512i) (INDEX), \
10695 (__mmask16)0xFFFF, \
10696 (int) (SCALE))
10697
10698#define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
10699 (__m512i) __builtin_ia32_gathersiv16si ((__v16si)(__m512i) (V1OLD), \
10700 (void const *) (ADDR), \
10701 (__v16si)(__m512i) (INDEX), \
10702 (__mmask16) (MASK), \
10703 (int) (SCALE))
10704
10705#define _mm512_i32gather_epi64(INDEX, ADDR, SCALE) \
10706 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)_mm512_undefined_epi32 (),\
10707 (void const *) (ADDR), \
10708 (__v8si)(__m256i) (INDEX), \
10709 (__mmask8)0xFF, (int) (SCALE))
10710
10711#define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
10712 (__m512i) __builtin_ia32_gathersiv8di ((__v8di)(__m512i) (V1OLD), \
10713 (void const *) (ADDR), \
10714 (__v8si)(__m256i) (INDEX), \
10715 (__mmask8) (MASK), \
10716 (int) (SCALE))
10717
10718#define _mm512_i64gather_epi32(INDEX, ADDR, SCALE) \
10719 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)_mm256_undefined_si256(),\
10720 (void const *) (ADDR), \
10721 (__v8di)(__m512i) (INDEX), \
10722 (__mmask8)0xFF, (int) (SCALE))
10723
10724#define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE) \
10725 (__m256i) __builtin_ia32_gatherdiv16si ((__v8si)(__m256i) (V1OLD), \
10726 (void const *) (ADDR), \
10727 (__v8di)(__m512i) (INDEX), \
10728 (__mmask8) (MASK), \
10729 (int) (SCALE))
10730
10731#define _mm512_i64gather_epi64(INDEX, ADDR, SCALE) \
10732 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)_mm512_undefined_epi32 (),\
10733 (void const *) (ADDR), \
10734 (__v8di)(__m512i) (INDEX), \
10735 (__mmask8)0xFF, (int) (SCALE))
10736
10737#define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE) \
10738 (__m512i) __builtin_ia32_gatherdiv8di ((__v8di)(__m512i) (V1OLD), \
10739 (void const *) (ADDR), \
10740 (__v8di)(__m512i) (INDEX), \
10741 (__mmask8) (MASK), \
10742 (int) (SCALE))
10743
10744#define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE) \
10745 __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16)0xFFFF, \
10746 (__v16si)(__m512i) (INDEX), \
10747 (__v16sf)(__m512) (V1), (int) (SCALE))
10748
10749#define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
10750 __builtin_ia32_scattersiv16sf ((void *) (ADDR), (__mmask16) (MASK), \
10751 (__v16si)(__m512i) (INDEX), \
10752 (__v16sf)(__m512) (V1), (int) (SCALE))
10753
10754#define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE) \
10755 __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8)0xFF, \
10756 (__v8si)(__m256i) (INDEX), \
10757 (__v8df)(__m512d) (V1), (int) (SCALE))
10758
10759#define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
10760 __builtin_ia32_scattersiv8df ((void *) (ADDR), (__mmask8) (MASK), \
10761 (__v8si)(__m256i) (INDEX), \
10762 (__v8df)(__m512d) (V1), (int) (SCALE))
10763
10764#define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE) \
10765 __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask8)0xFF, \
10766 (__v8di)(__m512i) (INDEX), \
10767 (__v8sf)(__m256) (V1), (int) (SCALE))
10768
10769#define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE) \
10770 __builtin_ia32_scatterdiv16sf ((void *) (ADDR), (__mmask16) (MASK), \
10771 (__v8di)(__m512i) (INDEX), \
10772 (__v8sf)(__m256) (V1), (int) (SCALE))
10773
10774#define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE) \
10775 __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8)0xFF, \
10776 (__v8di)(__m512i) (INDEX), \
10777 (__v8df)(__m512d) (V1), (int) (SCALE))
10778
10779#define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE) \
10780 __builtin_ia32_scatterdiv8df ((void *) (ADDR), (__mmask8) (MASK), \
10781 (__v8di)(__m512i) (INDEX), \
10782 (__v8df)(__m512d) (V1), (int) (SCALE))
10783
10784#define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE) \
10785 __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16)0xFFFF, \
10786 (__v16si)(__m512i) (INDEX), \
10787 (__v16si)(__m512i) (V1), (int) (SCALE))
10788
10789#define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
10790 __builtin_ia32_scattersiv16si ((void *) (ADDR), (__mmask16) (MASK), \
10791 (__v16si)(__m512i) (INDEX), \
10792 (__v16si)(__m512i) (V1), (int) (SCALE))
10793
10794#define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE) \
10795 __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8)0xFF, \
10796 (__v8si)(__m256i) (INDEX), \
10797 (__v8di)(__m512i) (V1), (int) (SCALE))
10798
10799#define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
10800 __builtin_ia32_scattersiv8di ((void *) (ADDR), (__mmask8) (MASK), \
10801 (__v8si)(__m256i) (INDEX), \
10802 (__v8di)(__m512i) (V1), (int) (SCALE))
10803
10804#define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE) \
10805 __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8)0xFF, \
10806 (__v8di)(__m512i) (INDEX), \
10807 (__v8si)(__m256i) (V1), (int) (SCALE))
10808
10809#define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE) \
10810 __builtin_ia32_scatterdiv16si ((void *) (ADDR), (__mmask8) (MASK), \
10811 (__v8di)(__m512i) (INDEX), \
10812 (__v8si)(__m256i) (V1), (int) (SCALE))
10813
10814#define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE) \
10815 __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8)0xFF, \
10816 (__v8di)(__m512i) (INDEX), \
10817 (__v8di)(__m512i) (V1), (int) (SCALE))
10818
10819#define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE) \
10820 __builtin_ia32_scatterdiv8di ((void *) (ADDR), (__mmask8) (MASK), \
10821 (__v8di)(__m512i) (INDEX), \
10822 (__v8di)(__m512i) (V1), (int) (SCALE))
10823#endif
10824
10825extern __inline __m512d
10826__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10827_mm512_mask_compress_pd (__m512d __W, __mmask8 __U, __m512d __A)
10828{
10829 return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10830 (__v8df) __W,
10831 (__mmask8) __U);
10832}
10833
10834extern __inline __m512d
10835__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10836_mm512_maskz_compress_pd (__mmask8 __U, __m512d __A)
10837{
10838 return (__m512d) __builtin_ia32_compressdf512_mask ((__v8df) __A,
10839 (__v8df)
10840 _mm512_setzero_pd (),
10841 (__mmask8) __U);
10842}
10843
10844extern __inline void
10845__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10846_mm512_mask_compressstoreu_pd (void *__P, __mmask8 __U, __m512d __A)
10847{
10848 __builtin_ia32_compressstoredf512_mask ((__v8df *) __P, (__v8df) __A,
10849 (__mmask8) __U);
10850}
10851
10852extern __inline __m512
10853__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10854_mm512_mask_compress_ps (__m512 __W, __mmask16 __U, __m512 __A)
10855{
10856 return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10857 (__v16sf) __W,
10858 (__mmask16) __U);
10859}
10860
10861extern __inline __m512
10862__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10863_mm512_maskz_compress_ps (__mmask16 __U, __m512 __A)
10864{
10865 return (__m512) __builtin_ia32_compresssf512_mask ((__v16sf) __A,
10866 (__v16sf)
10867 _mm512_setzero_ps (),
10868 (__mmask16) __U);
10869}
10870
10871extern __inline void
10872__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10873_mm512_mask_compressstoreu_ps (void *__P, __mmask16 __U, __m512 __A)
10874{
10875 __builtin_ia32_compressstoresf512_mask ((__v16sf *) __P, (__v16sf) __A,
10876 (__mmask16) __U);
10877}
10878
10879extern __inline __m512i
10880__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10881_mm512_mask_compress_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
10882{
10883 return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10884 (__v8di) __W,
10885 (__mmask8) __U);
10886}
10887
10888extern __inline __m512i
10889__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10890_mm512_maskz_compress_epi64 (__mmask8 __U, __m512i __A)
10891{
10892 return (__m512i) __builtin_ia32_compressdi512_mask ((__v8di) __A,
10893 (__v8di)
10894 _mm512_setzero_si512 (),
10895 (__mmask8) __U);
10896}
10897
10898extern __inline void
10899__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10900_mm512_mask_compressstoreu_epi64 (void *__P, __mmask8 __U, __m512i __A)
10901{
10902 __builtin_ia32_compressstoredi512_mask ((__v8di *) __P, (__v8di) __A,
10903 (__mmask8) __U);
10904}
10905
10906extern __inline __m512i
10907__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10908_mm512_mask_compress_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
10909{
10910 return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10911 (__v16si) __W,
10912 (__mmask16) __U);
10913}
10914
10915extern __inline __m512i
10916__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10917_mm512_maskz_compress_epi32 (__mmask16 __U, __m512i __A)
10918{
10919 return (__m512i) __builtin_ia32_compresssi512_mask ((__v16si) __A,
10920 (__v16si)
10921 _mm512_setzero_si512 (),
10922 (__mmask16) __U);
10923}
10924
10925extern __inline void
10926__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10927_mm512_mask_compressstoreu_epi32 (void *__P, __mmask16 __U, __m512i __A)
10928{
10929 __builtin_ia32_compressstoresi512_mask ((__v16si *) __P, (__v16si) __A,
10930 (__mmask16) __U);
10931}
10932
10933extern __inline __m512d
10934__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10935_mm512_mask_expand_pd (__m512d __W, __mmask8 __U, __m512d __A)
10936{
10937 return (__m512d) __builtin_ia32_expanddf512_mask ((__v8df) __A,
10938 (__v8df) __W,
10939 (__mmask8) __U);
10940}
10941
10942extern __inline __m512d
10943__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10944_mm512_maskz_expand_pd (__mmask8 __U, __m512d __A)
10945{
10946 return (__m512d) __builtin_ia32_expanddf512_maskz ((__v8df) __A,
10947 (__v8df)
10948 _mm512_setzero_pd (),
10949 (__mmask8) __U);
10950}
10951
10952extern __inline __m512d
10953__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10954_mm512_mask_expandloadu_pd (__m512d __W, __mmask8 __U, void const *__P)
10955{
10956 return (__m512d) __builtin_ia32_expandloaddf512_mask ((const __v8df *) __P,
10957 (__v8df) __W,
10958 (__mmask8) __U);
10959}
10960
10961extern __inline __m512d
10962__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10963_mm512_maskz_expandloadu_pd (__mmask8 __U, void const *__P)
10964{
10965 return (__m512d) __builtin_ia32_expandloaddf512_maskz ((const __v8df *) __P,
10966 (__v8df)
10967 _mm512_setzero_pd (),
10968 (__mmask8) __U);
10969}
10970
10971extern __inline __m512
10972__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10973_mm512_mask_expand_ps (__m512 __W, __mmask16 __U, __m512 __A)
10974{
10975 return (__m512) __builtin_ia32_expandsf512_mask ((__v16sf) __A,
10976 (__v16sf) __W,
10977 (__mmask16) __U);
10978}
10979
10980extern __inline __m512
10981__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10982_mm512_maskz_expand_ps (__mmask16 __U, __m512 __A)
10983{
10984 return (__m512) __builtin_ia32_expandsf512_maskz ((__v16sf) __A,
10985 (__v16sf)
10986 _mm512_setzero_ps (),
10987 (__mmask16) __U);
10988}
10989
10990extern __inline __m512
10991__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
10992_mm512_mask_expandloadu_ps (__m512 __W, __mmask16 __U, void const *__P)
10993{
10994 return (__m512) __builtin_ia32_expandloadsf512_mask ((const __v16sf *) __P,
10995 (__v16sf) __W,
10996 (__mmask16) __U);
10997}
10998
10999extern __inline __m512
11000__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11001_mm512_maskz_expandloadu_ps (__mmask16 __U, void const *__P)
11002{
11003 return (__m512) __builtin_ia32_expandloadsf512_maskz ((const __v16sf *) __P,
11004 (__v16sf)
11005 _mm512_setzero_ps (),
11006 (__mmask16) __U);
11007}
11008
11009extern __inline __m512i
11010__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11011_mm512_mask_expand_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
11012{
11013 return (__m512i) __builtin_ia32_expanddi512_mask ((__v8di) __A,
11014 (__v8di) __W,
11015 (__mmask8) __U);
11016}
11017
11018extern __inline __m512i
11019__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11020_mm512_maskz_expand_epi64 (__mmask8 __U, __m512i __A)
11021{
11022 return (__m512i) __builtin_ia32_expanddi512_maskz ((__v8di) __A,
11023 (__v8di)
11024 _mm512_setzero_si512 (),
11025 (__mmask8) __U);
11026}
11027
11028extern __inline __m512i
11029__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11030_mm512_mask_expandloadu_epi64 (__m512i __W, __mmask8 __U, void const *__P)
11031{
11032 return (__m512i) __builtin_ia32_expandloaddi512_mask ((const __v8di *) __P,
11033 (__v8di) __W,
11034 (__mmask8) __U);
11035}
11036
11037extern __inline __m512i
11038__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11039_mm512_maskz_expandloadu_epi64 (__mmask8 __U, void const *__P)
11040{
11041 return (__m512i)
11042 __builtin_ia32_expandloaddi512_maskz ((const __v8di *) __P,
11043 (__v8di)
11044 _mm512_setzero_si512 (),
11045 (__mmask8) __U);
11046}
11047
11048extern __inline __m512i
11049__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11050_mm512_mask_expand_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
11051{
11052 return (__m512i) __builtin_ia32_expandsi512_mask ((__v16si) __A,
11053 (__v16si) __W,
11054 (__mmask16) __U);
11055}
11056
11057extern __inline __m512i
11058__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11059_mm512_maskz_expand_epi32 (__mmask16 __U, __m512i __A)
11060{
11061 return (__m512i) __builtin_ia32_expandsi512_maskz ((__v16si) __A,
11062 (__v16si)
11063 _mm512_setzero_si512 (),
11064 (__mmask16) __U);
11065}
11066
11067extern __inline __m512i
11068__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11069_mm512_mask_expandloadu_epi32 (__m512i __W, __mmask16 __U, void const *__P)
11070{
11071 return (__m512i) __builtin_ia32_expandloadsi512_mask ((const __v16si *) __P,
11072 (__v16si) __W,
11073 (__mmask16) __U);
11074}
11075
11076extern __inline __m512i
11077__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11078_mm512_maskz_expandloadu_epi32 (__mmask16 __U, void const *__P)
11079{
11080 return (__m512i) __builtin_ia32_expandloadsi512_maskz ((const __v16si *) __P,
11081 (__v16si)
11082 _mm512_setzero_si512
11083 (), (__mmask16) __U);
11084}
11085
11086/* Mask arithmetic operations */
11087#define _kand_mask16 _mm512_kand
11088#define _kandn_mask16 _mm512_kandn
11089#define _knot_mask16 _mm512_knot
11090#define _kor_mask16 _mm512_kor
11091#define _kxnor_mask16 _mm512_kxnor
11092#define _kxor_mask16 _mm512_kxor
11093
11094extern __inline unsigned char
11095__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11096_kortest_mask16_u8 (__mmask16 __A, __mmask16 __B, unsigned char *__CF)
11097{
11098 *__CF = (unsigned char) __builtin_ia32_kortestchi (__A, __B);
11099 return (unsigned char) __builtin_ia32_kortestzhi (__A, __B);
11100}
11101
11102extern __inline unsigned char
11103__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11104_kortestz_mask16_u8 (__mmask16 __A, __mmask16 __B)
11105{
11106 return (unsigned char) __builtin_ia32_kortestzhi ((__mmask16) __A,
11107 (__mmask16) __B);
11108}
11109
11110extern __inline unsigned char
11111__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11112_kortestc_mask16_u8 (__mmask16 __A, __mmask16 __B)
11113{
11114 return (unsigned char) __builtin_ia32_kortestchi ((__mmask16) __A,
11115 (__mmask16) __B);
11116}
11117
11118extern __inline unsigned int
11119__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11120_cvtmask16_u32 (__mmask16 __A)
11121{
11122 return (unsigned int) __builtin_ia32_kmovw ((__mmask16 ) __A);
11123}
11124
11125extern __inline __mmask16
11126__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11127_cvtu32_mask16 (unsigned int __A)
11128{
11129 return (__mmask16) __builtin_ia32_kmovw ((__mmask16 ) __A);
11130}
11131
11132extern __inline __mmask16
11133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11134_load_mask16 (__mmask16 *__A)
11135{
11136 return (__mmask16) __builtin_ia32_kmovw (*(__mmask16 *) __A);
11137}
11138
11139extern __inline void
11140__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11141_store_mask16 (__mmask16 *__A, __mmask16 __B)
11142{
11143 *(__mmask16 *) __A = __builtin_ia32_kmovw (__B);
11144}
11145
11146extern __inline __mmask16
11147__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11148_mm512_kand (__mmask16 __A, __mmask16 __B)
11149{
11150 return (__mmask16) __builtin_ia32_kandhi ((__mmask16) __A, (__mmask16) __B);
11151}
11152
11153extern __inline __mmask16
11154__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11155_mm512_kandn (__mmask16 __A, __mmask16 __B)
11156{
11157 return (__mmask16) __builtin_ia32_kandnhi ((__mmask16) __A,
11158 (__mmask16) __B);
11159}
11160
11161extern __inline __mmask16
11162__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11163_mm512_kor (__mmask16 __A, __mmask16 __B)
11164{
11165 return (__mmask16) __builtin_ia32_korhi ((__mmask16) __A, (__mmask16) __B);
11166}
11167
11168extern __inline int
11169__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11170_mm512_kortestz (__mmask16 __A, __mmask16 __B)
11171{
11172 return (__mmask16) __builtin_ia32_kortestzhi ((__mmask16) __A,
11173 (__mmask16) __B);
11174}
11175
11176extern __inline int
11177__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11178_mm512_kortestc (__mmask16 __A, __mmask16 __B)
11179{
11180 return (__mmask16) __builtin_ia32_kortestchi ((__mmask16) __A,
11181 (__mmask16) __B);
11182}
11183
11184extern __inline __mmask16
11185__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11186_mm512_kxnor (__mmask16 __A, __mmask16 __B)
11187{
11188 return (__mmask16) __builtin_ia32_kxnorhi ((__mmask16) __A, (__mmask16) __B);
11189}
11190
11191extern __inline __mmask16
11192__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11193_mm512_kxor (__mmask16 __A, __mmask16 __B)
11194{
11195 return (__mmask16) __builtin_ia32_kxorhi ((__mmask16) __A, (__mmask16) __B);
11196}
11197
11198extern __inline __mmask16
11199__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11200_mm512_knot (__mmask16 __A)
11201{
11202 return (__mmask16) __builtin_ia32_knothi ((__mmask16) __A);
11203}
11204
11205extern __inline __mmask16
11206__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11207_mm512_kunpackb (__mmask16 __A, __mmask16 __B)
11208{
11209 return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
11210}
11211
11212extern __inline __mmask16
11213__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11214_kunpackb_mask16 (__mmask8 __A, __mmask8 __B)
11215{
11216 return (__mmask16) __builtin_ia32_kunpckhi ((__mmask16) __A, (__mmask16) __B);
11217}
11218
11219#ifdef __OPTIMIZE__
11220extern __inline __m512i
11221__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11222_mm512_maskz_inserti32x4 (__mmask16 __B, __m512i __C, __m128i __D,
11223 const int __imm)
11224{
11225 return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
11226 (__v4si) __D,
11227 __imm,
11228 (__v16si)
11229 _mm512_setzero_si512 (),
11230 __B);
11231}
11232
11233extern __inline __m512
11234__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11236 const int __imm)
11237{
11238 return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
11239 (__v4sf) __D,
11240 __imm,
11241 (__v16sf)
11242 _mm512_setzero_ps (), __B);
11243}
11244
11245extern __inline __m512i
11246__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11247_mm512_mask_inserti32x4 (__m512i __A, __mmask16 __B, __m512i __C,
11248 __m128i __D, const int __imm)
11249{
11250 return (__m512i) __builtin_ia32_inserti32x4_mask ((__v16si) __C,
11251 (__v4si) __D,
11252 __imm,
11253 (__v16si) __A,
11254 __B);
11255}
11256
11257extern __inline __m512
11258__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11260 __m128 __D, const int __imm)
11261{
11262 return (__m512) __builtin_ia32_insertf32x4_mask ((__v16sf) __C,
11263 (__v4sf) __D,
11264 __imm,
11265 (__v16sf) __A, __B);
11266}
11267#else
11268#define _mm512_maskz_insertf32x4(A, X, Y, C) \
11269 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
11270 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)_mm512_setzero_ps(), \
11271 (__mmask16)(A)))
11272
11273#define _mm512_maskz_inserti32x4(A, X, Y, C) \
11274 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
11275 (__v4si)(__m128i) (Y), (int) (C), (__v16si)_mm512_setzero_si512 (), \
11276 (__mmask16)(A)))
11277
11278#define _mm512_mask_insertf32x4(A, B, X, Y, C) \
11279 ((__m512) __builtin_ia32_insertf32x4_mask ((__v16sf)(__m512) (X), \
11280 (__v4sf)(__m128) (Y), (int) (C), (__v16sf)(__m512) (A), \
11281 (__mmask16)(B)))
11282
11283#define _mm512_mask_inserti32x4(A, B, X, Y, C) \
11284 ((__m512i) __builtin_ia32_inserti32x4_mask ((__v16si)(__m512i) (X), \
11285 (__v4si)(__m128i) (Y), (int) (C), (__v16si)(__m512i) (A), \
11286 (__mmask16)(B)))
11287#endif
11288
11289extern __inline __m512i
11290__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11291_mm512_max_epi64 (__m512i __A, __m512i __B)
11292{
11293 return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11294 (__v8di) __B,
11295 (__v8di)
11296 _mm512_undefined_epi32 (),
11297 (__mmask8) -1);
11298}
11299
11300extern __inline __m512i
11301__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11302_mm512_maskz_max_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
11303{
11304 return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11305 (__v8di) __B,
11306 (__v8di)
11307 _mm512_setzero_si512 (),
11308 __M);
11309}
11310
11311extern __inline __m512i
11312__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11313_mm512_mask_max_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11314{
11315 return (__m512i) __builtin_ia32_pmaxsq512_mask ((__v8di) __A,
11316 (__v8di) __B,
11317 (__v8di) __W, __M);
11318}
11319
11320extern __inline __m512i
11321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11322_mm512_min_epi64 (__m512i __A, __m512i __B)
11323{
11324 return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11325 (__v8di) __B,
11326 (__v8di)
11327 _mm512_undefined_epi32 (),
11328 (__mmask8) -1);
11329}
11330
11331extern __inline __m512i
11332__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11333_mm512_mask_min_epi64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11334{
11335 return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11336 (__v8di) __B,
11337 (__v8di) __W, __M);
11338}
11339
11340extern __inline __m512i
11341__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11342_mm512_maskz_min_epi64 (__mmask8 __M, __m512i __A, __m512i __B)
11343{
11344 return (__m512i) __builtin_ia32_pminsq512_mask ((__v8di) __A,
11345 (__v8di) __B,
11346 (__v8di)
11347 _mm512_setzero_si512 (),
11348 __M);
11349}
11350
11351extern __inline __m512i
11352__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11353_mm512_max_epu64 (__m512i __A, __m512i __B)
11354{
11355 return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11356 (__v8di) __B,
11357 (__v8di)
11358 _mm512_undefined_epi32 (),
11359 (__mmask8) -1);
11360}
11361
11362extern __inline __m512i
11363__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11364_mm512_maskz_max_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11365{
11366 return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11367 (__v8di) __B,
11368 (__v8di)
11369 _mm512_setzero_si512 (),
11370 __M);
11371}
11372
11373extern __inline __m512i
11374__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11375_mm512_mask_max_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11376{
11377 return (__m512i) __builtin_ia32_pmaxuq512_mask ((__v8di) __A,
11378 (__v8di) __B,
11379 (__v8di) __W, __M);
11380}
11381
11382extern __inline __m512i
11383__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11384_mm512_min_epu64 (__m512i __A, __m512i __B)
11385{
11386 return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11387 (__v8di) __B,
11388 (__v8di)
11389 _mm512_undefined_epi32 (),
11390 (__mmask8) -1);
11391}
11392
11393extern __inline __m512i
11394__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11395_mm512_mask_min_epu64 (__m512i __W, __mmask8 __M, __m512i __A, __m512i __B)
11396{
11397 return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11398 (__v8di) __B,
11399 (__v8di) __W, __M);
11400}
11401
11402extern __inline __m512i
11403__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11404_mm512_maskz_min_epu64 (__mmask8 __M, __m512i __A, __m512i __B)
11405{
11406 return (__m512i) __builtin_ia32_pminuq512_mask ((__v8di) __A,
11407 (__v8di) __B,
11408 (__v8di)
11409 _mm512_setzero_si512 (),
11410 __M);
11411}
11412
11413extern __inline __m512i
11414__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11415_mm512_max_epi32 (__m512i __A, __m512i __B)
11416{
11417 return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11418 (__v16si) __B,
11419 (__v16si)
11420 _mm512_undefined_epi32 (),
11421 (__mmask16) -1);
11422}
11423
11424extern __inline __m512i
11425__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11426_mm512_maskz_max_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11427{
11428 return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11429 (__v16si) __B,
11430 (__v16si)
11431 _mm512_setzero_si512 (),
11432 __M);
11433}
11434
11435extern __inline __m512i
11436__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11437_mm512_mask_max_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11438{
11439 return (__m512i) __builtin_ia32_pmaxsd512_mask ((__v16si) __A,
11440 (__v16si) __B,
11441 (__v16si) __W, __M);
11442}
11443
11444extern __inline __m512i
11445__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11446_mm512_min_epi32 (__m512i __A, __m512i __B)
11447{
11448 return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11449 (__v16si) __B,
11450 (__v16si)
11451 _mm512_undefined_epi32 (),
11452 (__mmask16) -1);
11453}
11454
11455extern __inline __m512i
11456__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11457_mm512_maskz_min_epi32 (__mmask16 __M, __m512i __A, __m512i __B)
11458{
11459 return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11460 (__v16si) __B,
11461 (__v16si)
11462 _mm512_setzero_si512 (),
11463 __M);
11464}
11465
11466extern __inline __m512i
11467__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11468_mm512_mask_min_epi32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11469{
11470 return (__m512i) __builtin_ia32_pminsd512_mask ((__v16si) __A,
11471 (__v16si) __B,
11472 (__v16si) __W, __M);
11473}
11474
11475extern __inline __m512i
11476__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11477_mm512_max_epu32 (__m512i __A, __m512i __B)
11478{
11479 return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11480 (__v16si) __B,
11481 (__v16si)
11482 _mm512_undefined_epi32 (),
11483 (__mmask16) -1);
11484}
11485
11486extern __inline __m512i
11487__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11488_mm512_maskz_max_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11489{
11490 return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11491 (__v16si) __B,
11492 (__v16si)
11493 _mm512_setzero_si512 (),
11494 __M);
11495}
11496
11497extern __inline __m512i
11498__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11499_mm512_mask_max_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11500{
11501 return (__m512i) __builtin_ia32_pmaxud512_mask ((__v16si) __A,
11502 (__v16si) __B,
11503 (__v16si) __W, __M);
11504}
11505
11506extern __inline __m512i
11507__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11508_mm512_min_epu32 (__m512i __A, __m512i __B)
11509{
11510 return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11511 (__v16si) __B,
11512 (__v16si)
11513 _mm512_undefined_epi32 (),
11514 (__mmask16) -1);
11515}
11516
11517extern __inline __m512i
11518__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11519_mm512_maskz_min_epu32 (__mmask16 __M, __m512i __A, __m512i __B)
11520{
11521 return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11522 (__v16si) __B,
11523 (__v16si)
11524 _mm512_setzero_si512 (),
11525 __M);
11526}
11527
11528extern __inline __m512i
11529__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11530_mm512_mask_min_epu32 (__m512i __W, __mmask16 __M, __m512i __A, __m512i __B)
11531{
11532 return (__m512i) __builtin_ia32_pminud512_mask ((__v16si) __A,
11533 (__v16si) __B,
11534 (__v16si) __W, __M);
11535}
11536
11537extern __inline __m512
11538__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11539_mm512_unpacklo_ps (__m512 __A, __m512 __B)
11540{
11541 return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11542 (__v16sf) __B,
11543 (__v16sf)
11544 _mm512_undefined_ps (),
11545 (__mmask16) -1);
11546}
11547
11548extern __inline __m512
11549__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11550_mm512_mask_unpacklo_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
11551{
11552 return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11553 (__v16sf) __B,
11554 (__v16sf) __W,
11555 (__mmask16) __U);
11556}
11557
11558extern __inline __m512
11559__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11560_mm512_maskz_unpacklo_ps (__mmask16 __U, __m512 __A, __m512 __B)
11561{
11562 return (__m512) __builtin_ia32_unpcklps512_mask ((__v16sf) __A,
11563 (__v16sf) __B,
11564 (__v16sf)
11565 _mm512_setzero_ps (),
11566 (__mmask16) __U);
11567}
11568
11569#ifdef __OPTIMIZE__
11570extern __inline __m128d
11571__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11572_mm_max_round_sd (__m128d __A, __m128d __B, const int __R)
11573{
11574 return (__m128d) __builtin_ia32_maxsd_round ((__v2df) __A,
11575 (__v2df) __B,
11576 __R);
11577}
11578
11579extern __inline __m128d
11580__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11581_mm_mask_max_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11582 __m128d __B, const int __R)
11583{
11584 return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11585 (__v2df) __B,
11586 (__v2df) __W,
11587 (__mmask8) __U, __R);
11588}
11589
11590extern __inline __m128d
11591__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11592_mm_maskz_max_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11593 const int __R)
11594{
11595 return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
11596 (__v2df) __B,
11597 (__v2df)
11598 _mm_setzero_pd (),
11599 (__mmask8) __U, __R);
11600}
11601
11602extern __inline __m128
11603__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11604_mm_max_round_ss (__m128 __A, __m128 __B, const int __R)
11605{
11606 return (__m128) __builtin_ia32_maxss_round ((__v4sf) __A,
11607 (__v4sf) __B,
11608 __R);
11609}
11610
11611extern __inline __m128
11612__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11613_mm_mask_max_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11614 __m128 __B, const int __R)
11615{
11616 return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11617 (__v4sf) __B,
11618 (__v4sf) __W,
11619 (__mmask8) __U, __R);
11620}
11621
11622extern __inline __m128
11623__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11624_mm_maskz_max_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11625 const int __R)
11626{
11627 return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
11628 (__v4sf) __B,
11629 (__v4sf)
11630 _mm_setzero_ps (),
11631 (__mmask8) __U, __R);
11632}
11633
11634extern __inline __m128d
11635__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11636_mm_min_round_sd (__m128d __A, __m128d __B, const int __R)
11637{
11638 return (__m128d) __builtin_ia32_minsd_round ((__v2df) __A,
11639 (__v2df) __B,
11640 __R);
11641}
11642
11643extern __inline __m128d
11644__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11645_mm_mask_min_round_sd (__m128d __W, __mmask8 __U, __m128d __A,
11646 __m128d __B, const int __R)
11647{
11648 return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11649 (__v2df) __B,
11650 (__v2df) __W,
11651 (__mmask8) __U, __R);
11652}
11653
11654extern __inline __m128d
11655__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11656_mm_maskz_min_round_sd (__mmask8 __U, __m128d __A, __m128d __B,
11657 const int __R)
11658{
11659 return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
11660 (__v2df) __B,
11661 (__v2df)
11662 _mm_setzero_pd (),
11663 (__mmask8) __U, __R);
11664}
11665
11666extern __inline __m128
11667__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11668_mm_min_round_ss (__m128 __A, __m128 __B, const int __R)
11669{
11670 return (__m128) __builtin_ia32_minss_round ((__v4sf) __A,
11671 (__v4sf) __B,
11672 __R);
11673}
11674
11675extern __inline __m128
11676__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11677_mm_mask_min_round_ss (__m128 __W, __mmask8 __U, __m128 __A,
11678 __m128 __B, const int __R)
11679{
11680 return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11681 (__v4sf) __B,
11682 (__v4sf) __W,
11683 (__mmask8) __U, __R);
11684}
11685
11686extern __inline __m128
11687__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11688_mm_maskz_min_round_ss (__mmask8 __U, __m128 __A, __m128 __B,
11689 const int __R)
11690{
11691 return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
11692 (__v4sf) __B,
11693 (__v4sf)
11694 _mm_setzero_ps (),
11695 (__mmask8) __U, __R);
11696}
11697
11698#else
11699#define _mm_max_round_sd(A, B, C) \
11700 (__m128d)__builtin_ia32_maxsd_round(A, B, C)
11701
11702#define _mm_mask_max_round_sd(W, U, A, B, C) \
11703 (__m128d)__builtin_ia32_maxsd_mask_round(A, B, W, U, C)
11704
11705#define _mm_maskz_max_round_sd(U, A, B, C) \
11706 (__m128d)__builtin_ia32_maxsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11707
11708#define _mm_max_round_ss(A, B, C) \
11709 (__m128)__builtin_ia32_maxss_round(A, B, C)
11710
11711#define _mm_mask_max_round_ss(W, U, A, B, C) \
11712 (__m128)__builtin_ia32_maxss_mask_round(A, B, W, U, C)
11713
11714#define _mm_maskz_max_round_ss(U, A, B, C) \
11715 (__m128)__builtin_ia32_maxss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11716
11717#define _mm_min_round_sd(A, B, C) \
11718 (__m128d)__builtin_ia32_minsd_round(A, B, C)
11719
11720#define _mm_mask_min_round_sd(W, U, A, B, C) \
11721 (__m128d)__builtin_ia32_minsd_mask_round(A, B, W, U, C)
11722
11723#define _mm_maskz_min_round_sd(U, A, B, C) \
11724 (__m128d)__builtin_ia32_minsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U, C)
11725
11726#define _mm_min_round_ss(A, B, C) \
11727 (__m128)__builtin_ia32_minss_round(A, B, C)
11728
11729#define _mm_mask_min_round_ss(W, U, A, B, C) \
11730 (__m128)__builtin_ia32_minss_mask_round(A, B, W, U, C)
11731
11732#define _mm_maskz_min_round_ss(U, A, B, C) \
11733 (__m128)__builtin_ia32_minss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U, C)
11734
11735#endif
11736
11737extern __inline __m512d
11738__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11739_mm512_mask_blend_pd (__mmask8 __U, __m512d __A, __m512d __W)
11740{
11741 return (__m512d) __builtin_ia32_blendmpd_512_mask ((__v8df) __A,
11742 (__v8df) __W,
11743 (__mmask8) __U);
11744}
11745
11746extern __inline __m512
11747__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11748_mm512_mask_blend_ps (__mmask16 __U, __m512 __A, __m512 __W)
11749{
11750 return (__m512) __builtin_ia32_blendmps_512_mask ((__v16sf) __A,
11751 (__v16sf) __W,
11752 (__mmask16) __U);
11753}
11754
11755extern __inline __m512i
11756__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11757_mm512_mask_blend_epi64 (__mmask8 __U, __m512i __A, __m512i __W)
11758{
11759 return (__m512i) __builtin_ia32_blendmq_512_mask ((__v8di) __A,
11760 (__v8di) __W,
11761 (__mmask8) __U);
11762}
11763
11764extern __inline __m512i
11765__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11766_mm512_mask_blend_epi32 (__mmask16 __U, __m512i __A, __m512i __W)
11767{
11768 return (__m512i) __builtin_ia32_blendmd_512_mask ((__v16si) __A,
11769 (__v16si) __W,
11770 (__mmask16) __U);
11771}
11772
11773#ifdef __OPTIMIZE__
11774extern __inline __m128d
11775__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11776_mm_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11777{
11778 return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11779 (__v2df) __A,
11780 (__v2df) __B,
11781 __R);
11782}
11783
11784extern __inline __m128
11785__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11786_mm_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11787{
11788 return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11789 (__v4sf) __A,
11790 (__v4sf) __B,
11791 __R);
11792}
11793
11794extern __inline __m128d
11795__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11796_mm_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11797{
11798 return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11799 (__v2df) __A,
11800 -(__v2df) __B,
11801 __R);
11802}
11803
11804extern __inline __m128
11805__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11806_mm_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11807{
11808 return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11809 (__v4sf) __A,
11810 -(__v4sf) __B,
11811 __R);
11812}
11813
11814extern __inline __m128d
11815__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11816_mm_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11817{
11818 return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11819 -(__v2df) __A,
11820 (__v2df) __B,
11821 __R);
11822}
11823
11824extern __inline __m128
11825__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11826_mm_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11827{
11828 return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11829 -(__v4sf) __A,
11830 (__v4sf) __B,
11831 __R);
11832}
11833
11834extern __inline __m128d
11835__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11836_mm_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, const int __R)
11837{
11838 return (__m128d) __builtin_ia32_vfmaddsd3_round ((__v2df) __W,
11839 -(__v2df) __A,
11840 -(__v2df) __B,
11841 __R);
11842}
11843
11844extern __inline __m128
11845__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11846_mm_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, const int __R)
11847{
11848 return (__m128) __builtin_ia32_vfmaddss3_round ((__v4sf) __W,
11849 -(__v4sf) __A,
11850 -(__v4sf) __B,
11851 __R);
11852}
11853#else
11854#define _mm_fmadd_round_sd(A, B, C, R) \
11855 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, C, R)
11856
11857#define _mm_fmadd_round_ss(A, B, C, R) \
11858 (__m128)__builtin_ia32_vfmaddss3_round(A, B, C, R)
11859
11860#define _mm_fmsub_round_sd(A, B, C, R) \
11861 (__m128d)__builtin_ia32_vfmaddsd3_round(A, B, -(C), R)
11862
11863#define _mm_fmsub_round_ss(A, B, C, R) \
11864 (__m128)__builtin_ia32_vfmaddss3_round(A, B, -(C), R)
11865
11866#define _mm_fnmadd_round_sd(A, B, C, R) \
11867 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), C, R)
11868
11869#define _mm_fnmadd_round_ss(A, B, C, R) \
11870 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), C, R)
11871
11872#define _mm_fnmsub_round_sd(A, B, C, R) \
11873 (__m128d)__builtin_ia32_vfmaddsd3_round(A, -(B), -(C), R)
11874
11875#define _mm_fnmsub_round_ss(A, B, C, R) \
11876 (__m128)__builtin_ia32_vfmaddss3_round(A, -(B), -(C), R)
11877#endif
11878
11879extern __inline __m128d
11880__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11881_mm_mask_fmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11882{
11883 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11884 (__v2df) __A,
11885 (__v2df) __B,
11886 (__mmask8) __U,
11888}
11889
11890extern __inline __m128
11891__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11892_mm_mask_fmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11893{
11894 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11895 (__v4sf) __A,
11896 (__v4sf) __B,
11897 (__mmask8) __U,
11899}
11900
11901extern __inline __m128d
11902__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11903_mm_mask3_fmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11904{
11905 return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
11906 (__v2df) __A,
11907 (__v2df) __B,
11908 (__mmask8) __U,
11910}
11911
11912extern __inline __m128
11913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11914_mm_mask3_fmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11915{
11916 return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
11917 (__v4sf) __A,
11918 (__v4sf) __B,
11919 (__mmask8) __U,
11921}
11922
11923extern __inline __m128d
11924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11925_mm_maskz_fmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11926{
11927 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11928 (__v2df) __A,
11929 (__v2df) __B,
11930 (__mmask8) __U,
11932}
11933
11934extern __inline __m128
11935__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11936_mm_maskz_fmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
11937{
11938 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
11939 (__v4sf) __A,
11940 (__v4sf) __B,
11941 (__mmask8) __U,
11943}
11944
11945extern __inline __m128d
11946__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11947_mm_mask_fmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
11948{
11949 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
11950 (__v2df) __A,
11951 -(__v2df) __B,
11952 (__mmask8) __U,
11954}
11955
11956extern __inline __m128
11957__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11958_mm_mask_fmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
11959{
11960 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
11961 (__v4sf) __A,
11962 -(__v4sf) __B,
11963 (__mmask8) __U,
11965}
11966
11967extern __inline __m128d
11968__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11969_mm_mask3_fmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
11970{
11971 return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
11972 (__v2df) __A,
11973 (__v2df) __B,
11974 (__mmask8) __U,
11976}
11977
11978extern __inline __m128
11979__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11980_mm_mask3_fmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
11981{
11982 return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
11983 (__v4sf) __A,
11984 (__v4sf) __B,
11985 (__mmask8) __U,
11987}
11988
11989extern __inline __m128d
11990__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
11991_mm_maskz_fmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
11992{
11993 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
11994 (__v2df) __A,
11995 -(__v2df) __B,
11996 (__mmask8) __U,
11998}
11999
12000extern __inline __m128
12001__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12002_mm_maskz_fmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
12003{
12004 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12005 (__v4sf) __A,
12006 -(__v4sf) __B,
12007 (__mmask8) __U,
12009}
12010
12011extern __inline __m128d
12012__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12013_mm_mask_fnmadd_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12014{
12015 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12016 -(__v2df) __A,
12017 (__v2df) __B,
12018 (__mmask8) __U,
12020}
12021
12022extern __inline __m128
12023__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12024_mm_mask_fnmadd_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12025{
12026 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12027 -(__v4sf) __A,
12028 (__v4sf) __B,
12029 (__mmask8) __U,
12031}
12032
12033extern __inline __m128d
12034__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12035_mm_mask3_fnmadd_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
12036{
12037 return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
12038 -(__v2df) __A,
12039 (__v2df) __B,
12040 (__mmask8) __U,
12042}
12043
12044extern __inline __m128
12045__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12046_mm_mask3_fnmadd_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
12047{
12048 return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12049 -(__v4sf) __A,
12050 (__v4sf) __B,
12051 (__mmask8) __U,
12053}
12054
12055extern __inline __m128d
12056__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12057_mm_maskz_fnmadd_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
12058{
12059 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12060 -(__v2df) __A,
12061 (__v2df) __B,
12062 (__mmask8) __U,
12064}
12065
12066extern __inline __m128
12067__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12068_mm_maskz_fnmadd_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
12069{
12070 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12071 -(__v4sf) __A,
12072 (__v4sf) __B,
12073 (__mmask8) __U,
12075}
12076
12077extern __inline __m128d
12078__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12079_mm_mask_fnmsub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12080{
12081 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12082 -(__v2df) __A,
12083 -(__v2df) __B,
12084 (__mmask8) __U,
12086}
12087
12088extern __inline __m128
12089__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12090_mm_mask_fnmsub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12091{
12092 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12093 -(__v4sf) __A,
12094 -(__v4sf) __B,
12095 (__mmask8) __U,
12097}
12098
12099extern __inline __m128d
12100__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12101_mm_mask3_fnmsub_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U)
12102{
12103 return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12104 -(__v2df) __A,
12105 (__v2df) __B,
12106 (__mmask8) __U,
12108}
12109
12110extern __inline __m128
12111__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12112_mm_mask3_fnmsub_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U)
12113{
12114 return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12115 -(__v4sf) __A,
12116 (__v4sf) __B,
12117 (__mmask8) __U,
12119}
12120
12121extern __inline __m128d
12122__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12123_mm_maskz_fnmsub_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B)
12124{
12125 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12126 -(__v2df) __A,
12127 -(__v2df) __B,
12128 (__mmask8) __U,
12130}
12131
12132extern __inline __m128
12133__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12134_mm_maskz_fnmsub_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B)
12135{
12136 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12137 -(__v4sf) __A,
12138 -(__v4sf) __B,
12139 (__mmask8) __U,
12141}
12142
12143#ifdef __OPTIMIZE__
12144extern __inline __m128d
12145__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12146_mm_mask_fmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12147 const int __R)
12148{
12149 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12150 (__v2df) __A,
12151 (__v2df) __B,
12152 (__mmask8) __U, __R);
12153}
12154
12155extern __inline __m128
12156__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12157_mm_mask_fmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12158 const int __R)
12159{
12160 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12161 (__v4sf) __A,
12162 (__v4sf) __B,
12163 (__mmask8) __U, __R);
12164}
12165
12166extern __inline __m128d
12167__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12168_mm_mask3_fmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12169 const int __R)
12170{
12171 return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
12172 (__v2df) __A,
12173 (__v2df) __B,
12174 (__mmask8) __U, __R);
12175}
12176
12177extern __inline __m128
12178__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12179_mm_mask3_fmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12180 const int __R)
12181{
12182 return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12183 (__v4sf) __A,
12184 (__v4sf) __B,
12185 (__mmask8) __U, __R);
12186}
12187
12188extern __inline __m128d
12189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12190_mm_maskz_fmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12191 const int __R)
12192{
12193 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12194 (__v2df) __A,
12195 (__v2df) __B,
12196 (__mmask8) __U, __R);
12197}
12198
12199extern __inline __m128
12200__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12201_mm_maskz_fmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12202 const int __R)
12203{
12204 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12205 (__v4sf) __A,
12206 (__v4sf) __B,
12207 (__mmask8) __U, __R);
12208}
12209
12210extern __inline __m128d
12211__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12212_mm_mask_fmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12213 const int __R)
12214{
12215 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12216 (__v2df) __A,
12217 -(__v2df) __B,
12218 (__mmask8) __U, __R);
12219}
12220
12221extern __inline __m128
12222__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12223_mm_mask_fmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12224 const int __R)
12225{
12226 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12227 (__v4sf) __A,
12228 -(__v4sf) __B,
12229 (__mmask8) __U, __R);
12230}
12231
12232extern __inline __m128d
12233__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12234_mm_mask3_fmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12235 const int __R)
12236{
12237 return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12238 (__v2df) __A,
12239 (__v2df) __B,
12240 (__mmask8) __U, __R);
12241}
12242
12243extern __inline __m128
12244__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12245_mm_mask3_fmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12246 const int __R)
12247{
12248 return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12249 (__v4sf) __A,
12250 (__v4sf) __B,
12251 (__mmask8) __U, __R);
12252}
12253
12254extern __inline __m128d
12255__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12256_mm_maskz_fmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12257 const int __R)
12258{
12259 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12260 (__v2df) __A,
12261 -(__v2df) __B,
12262 (__mmask8) __U, __R);
12263}
12264
12265extern __inline __m128
12266__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12267_mm_maskz_fmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12268 const int __R)
12269{
12270 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12271 (__v4sf) __A,
12272 -(__v4sf) __B,
12273 (__mmask8) __U, __R);
12274}
12275
12276extern __inline __m128d
12277__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12278_mm_mask_fnmadd_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12279 const int __R)
12280{
12281 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12282 -(__v2df) __A,
12283 (__v2df) __B,
12284 (__mmask8) __U, __R);
12285}
12286
12287extern __inline __m128
12288__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12289_mm_mask_fnmadd_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12290 const int __R)
12291{
12292 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12293 -(__v4sf) __A,
12294 (__v4sf) __B,
12295 (__mmask8) __U, __R);
12296}
12297
12298extern __inline __m128d
12299__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12300_mm_mask3_fnmadd_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12301 const int __R)
12302{
12303 return (__m128d) __builtin_ia32_vfmaddsd3_mask3 ((__v2df) __W,
12304 -(__v2df) __A,
12305 (__v2df) __B,
12306 (__mmask8) __U, __R);
12307}
12308
12309extern __inline __m128
12310__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12311_mm_mask3_fnmadd_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12312 const int __R)
12313{
12314 return (__m128) __builtin_ia32_vfmaddss3_mask3 ((__v4sf) __W,
12315 -(__v4sf) __A,
12316 (__v4sf) __B,
12317 (__mmask8) __U, __R);
12318}
12319
12320extern __inline __m128d
12321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12322_mm_maskz_fnmadd_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12323 const int __R)
12324{
12325 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12326 -(__v2df) __A,
12327 (__v2df) __B,
12328 (__mmask8) __U, __R);
12329}
12330
12331extern __inline __m128
12332__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12333_mm_maskz_fnmadd_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12334 const int __R)
12335{
12336 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12337 -(__v4sf) __A,
12338 (__v4sf) __B,
12339 (__mmask8) __U, __R);
12340}
12341
12342extern __inline __m128d
12343__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12344_mm_mask_fnmsub_round_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
12345 const int __R)
12346{
12347 return (__m128d) __builtin_ia32_vfmaddsd3_mask ((__v2df) __W,
12348 -(__v2df) __A,
12349 -(__v2df) __B,
12350 (__mmask8) __U, __R);
12351}
12352
12353extern __inline __m128
12354__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12355_mm_mask_fnmsub_round_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
12356 const int __R)
12357{
12358 return (__m128) __builtin_ia32_vfmaddss3_mask ((__v4sf) __W,
12359 -(__v4sf) __A,
12360 -(__v4sf) __B,
12361 (__mmask8) __U, __R);
12362}
12363
12364extern __inline __m128d
12365__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12366_mm_mask3_fnmsub_round_sd (__m128d __W, __m128d __A, __m128d __B, __mmask8 __U,
12367 const int __R)
12368{
12369 return (__m128d) __builtin_ia32_vfmsubsd3_mask3 ((__v2df) __W,
12370 -(__v2df) __A,
12371 (__v2df) __B,
12372 (__mmask8) __U, __R);
12373}
12374
12375extern __inline __m128
12376__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12377_mm_mask3_fnmsub_round_ss (__m128 __W, __m128 __A, __m128 __B, __mmask8 __U,
12378 const int __R)
12379{
12380 return (__m128) __builtin_ia32_vfmsubss3_mask3 ((__v4sf) __W,
12381 -(__v4sf) __A,
12382 (__v4sf) __B,
12383 (__mmask8) __U, __R);
12384}
12385
12386extern __inline __m128d
12387__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12388_mm_maskz_fnmsub_round_sd (__mmask8 __U, __m128d __W, __m128d __A, __m128d __B,
12389 const int __R)
12390{
12391 return (__m128d) __builtin_ia32_vfmaddsd3_maskz ((__v2df) __W,
12392 -(__v2df) __A,
12393 -(__v2df) __B,
12394 (__mmask8) __U, __R);
12395}
12396
12397extern __inline __m128
12398__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12399_mm_maskz_fnmsub_round_ss (__mmask8 __U, __m128 __W, __m128 __A, __m128 __B,
12400 const int __R)
12401{
12402 return (__m128) __builtin_ia32_vfmaddss3_maskz ((__v4sf) __W,
12403 -(__v4sf) __A,
12404 -(__v4sf) __B,
12405 (__mmask8) __U, __R);
12406}
12407#else
12408#define _mm_mask_fmadd_round_sd(A, U, B, C, R) \
12409 (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, C, U, R)
12410
12411#define _mm_mask_fmadd_round_ss(A, U, B, C, R) \
12412 (__m128) __builtin_ia32_vfmaddss3_mask (A, B, C, U, R)
12413
12414#define _mm_mask3_fmadd_round_sd(A, B, C, U, R) \
12415 (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, B, C, U, R)
12416
12417#define _mm_mask3_fmadd_round_ss(A, B, C, U, R) \
12418 (__m128) __builtin_ia32_vfmaddss3_mask3 (A, B, C, U, R)
12419
12420#define _mm_maskz_fmadd_round_sd(U, A, B, C, R) \
12421 (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, C, U, R)
12422
12423#define _mm_maskz_fmadd_round_ss(U, A, B, C, R) \
12424 (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, C, U, R)
12425
12426#define _mm_mask_fmsub_round_sd(A, U, B, C, R) \
12427 (__m128d) __builtin_ia32_vfmaddsd3_mask (A, B, -(C), U, R)
12428
12429#define _mm_mask_fmsub_round_ss(A, U, B, C, R) \
12430 (__m128) __builtin_ia32_vfmaddss3_mask (A, B, -(C), U, R)
12431
12432#define _mm_mask3_fmsub_round_sd(A, B, C, U, R) \
12433 (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, B, C, U, R)
12434
12435#define _mm_mask3_fmsub_round_ss(A, B, C, U, R) \
12436 (__m128) __builtin_ia32_vfmsubss3_mask3 (A, B, C, U, R)
12437
12438#define _mm_maskz_fmsub_round_sd(U, A, B, C, R) \
12439 (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, B, -(C), U, R)
12440
12441#define _mm_maskz_fmsub_round_ss(U, A, B, C, R) \
12442 (__m128) __builtin_ia32_vfmaddss3_maskz (A, B, -(C), U, R)
12443
12444#define _mm_mask_fnmadd_round_sd(A, U, B, C, R) \
12445 (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), C, U, R)
12446
12447#define _mm_mask_fnmadd_round_ss(A, U, B, C, R) \
12448 (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), C, U, R)
12449
12450#define _mm_mask3_fnmadd_round_sd(A, B, C, U, R) \
12451 (__m128d) __builtin_ia32_vfmaddsd3_mask3 (A, -(B), C, U, R)
12452
12453#define _mm_mask3_fnmadd_round_ss(A, B, C, U, R) \
12454 (__m128) __builtin_ia32_vfmaddss3_mask3 (A, -(B), C, U, R)
12455
12456#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R) \
12457 (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), C, U, R)
12458
12459#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R) \
12460 (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), C, U, R)
12461
12462#define _mm_mask_fnmsub_round_sd(A, U, B, C, R) \
12463 (__m128d) __builtin_ia32_vfmaddsd3_mask (A, -(B), -(C), U, R)
12464
12465#define _mm_mask_fnmsub_round_ss(A, U, B, C, R) \
12466 (__m128) __builtin_ia32_vfmaddss3_mask (A, -(B), -(C), U, R)
12467
12468#define _mm_mask3_fnmsub_round_sd(A, B, C, U, R) \
12469 (__m128d) __builtin_ia32_vfmsubsd3_mask3 (A, -(B), C, U, R)
12470
12471#define _mm_mask3_fnmsub_round_ss(A, B, C, U, R) \
12472 (__m128) __builtin_ia32_vfmsubss3_mask3 (A, -(B), C, U, R)
12473
12474#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R) \
12475 (__m128d) __builtin_ia32_vfmaddsd3_maskz (A, -(B), -(C), U, R)
12476
12477#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R) \
12478 (__m128) __builtin_ia32_vfmaddss3_maskz (A, -(B), -(C), U, R)
12479#endif
12480
12481#ifdef __OPTIMIZE__
12482extern __inline int
12483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12484_mm_comi_round_ss (__m128 __A, __m128 __B, const int __P, const int __R)
12485{
12486 return __builtin_ia32_vcomiss ((__v4sf) __A, (__v4sf) __B, __P, __R);
12487}
12488
12489extern __inline int
12490__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12491_mm_comi_round_sd (__m128d __A, __m128d __B, const int __P, const int __R)
12492{
12493 return __builtin_ia32_vcomisd ((__v2df) __A, (__v2df) __B, __P, __R);
12494}
12495#else
12496#define _mm_comi_round_ss(A, B, C, D)\
12497__builtin_ia32_vcomiss(A, B, C, D)
12498#define _mm_comi_round_sd(A, B, C, D)\
12499__builtin_ia32_vcomisd(A, B, C, D)
12500#endif
12501
12502extern __inline __m512d
12503__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12504_mm512_sqrt_pd (__m512d __A)
12505{
12506 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12507 (__v8df)
12508 _mm512_undefined_pd (),
12509 (__mmask8) -1,
12511}
12512
12513extern __inline __m512d
12514__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12515_mm512_mask_sqrt_pd (__m512d __W, __mmask8 __U, __m512d __A)
12516{
12517 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12518 (__v8df) __W,
12519 (__mmask8) __U,
12521}
12522
12523extern __inline __m512d
12524__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12525_mm512_maskz_sqrt_pd (__mmask8 __U, __m512d __A)
12526{
12527 return (__m512d) __builtin_ia32_sqrtpd512_mask ((__v8df) __A,
12528 (__v8df)
12529 _mm512_setzero_pd (),
12530 (__mmask8) __U,
12532}
12533
12534extern __inline __m512
12535__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12536_mm512_sqrt_ps (__m512 __A)
12537{
12538 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12539 (__v16sf)
12540 _mm512_undefined_ps (),
12541 (__mmask16) -1,
12543}
12544
12545extern __inline __m512
12546__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12547_mm512_mask_sqrt_ps (__m512 __W, __mmask16 __U, __m512 __A)
12548{
12549 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12550 (__v16sf) __W,
12551 (__mmask16) __U,
12553}
12554
12555extern __inline __m512
12556__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12557_mm512_maskz_sqrt_ps (__mmask16 __U, __m512 __A)
12558{
12559 return (__m512) __builtin_ia32_sqrtps512_mask ((__v16sf) __A,
12560 (__v16sf)
12561 _mm512_setzero_ps (),
12562 (__mmask16) __U,
12564}
12565
12566extern __inline __m512d
12567__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12568_mm512_add_pd (__m512d __A, __m512d __B)
12569{
12570 return (__m512d) ((__v8df)__A + (__v8df)__B);
12571}
12572
12573extern __inline __m512d
12574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12575_mm512_mask_add_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12576{
12577 return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12578 (__v8df) __B,
12579 (__v8df) __W,
12580 (__mmask8) __U,
12582}
12583
12584extern __inline __m512d
12585__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12586_mm512_maskz_add_pd (__mmask8 __U, __m512d __A, __m512d __B)
12587{
12588 return (__m512d) __builtin_ia32_addpd512_mask ((__v8df) __A,
12589 (__v8df) __B,
12590 (__v8df)
12591 _mm512_setzero_pd (),
12592 (__mmask8) __U,
12594}
12595
12596extern __inline __m512
12597__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12598_mm512_add_ps (__m512 __A, __m512 __B)
12599{
12600 return (__m512) ((__v16sf)__A + (__v16sf)__B);
12601}
12602
12603extern __inline __m512
12604__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12605_mm512_mask_add_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12606{
12607 return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12608 (__v16sf) __B,
12609 (__v16sf) __W,
12610 (__mmask16) __U,
12612}
12613
12614extern __inline __m512
12615__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12616_mm512_maskz_add_ps (__mmask16 __U, __m512 __A, __m512 __B)
12617{
12618 return (__m512) __builtin_ia32_addps512_mask ((__v16sf) __A,
12619 (__v16sf) __B,
12620 (__v16sf)
12621 _mm512_setzero_ps (),
12622 (__mmask16) __U,
12624}
12625
12626extern __inline __m128d
12627__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12628_mm_mask_add_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12629{
12630 return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12631 (__v2df) __B,
12632 (__v2df) __W,
12633 (__mmask8) __U,
12635}
12636
12637extern __inline __m128d
12638__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12639_mm_maskz_add_sd (__mmask8 __U, __m128d __A, __m128d __B)
12640{
12641 return (__m128d) __builtin_ia32_addsd_mask_round ((__v2df) __A,
12642 (__v2df) __B,
12643 (__v2df)
12644 _mm_setzero_pd (),
12645 (__mmask8) __U,
12647}
12648
12649extern __inline __m128
12650__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12651_mm_mask_add_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12652{
12653 return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12654 (__v4sf) __B,
12655 (__v4sf) __W,
12656 (__mmask8) __U,
12658}
12659
12660extern __inline __m128
12661__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12662_mm_maskz_add_ss (__mmask8 __U, __m128 __A, __m128 __B)
12663{
12664 return (__m128) __builtin_ia32_addss_mask_round ((__v4sf) __A,
12665 (__v4sf) __B,
12666 (__v4sf)
12667 _mm_setzero_ps (),
12668 (__mmask8) __U,
12670}
12671
12672extern __inline __m512d
12673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12674_mm512_sub_pd (__m512d __A, __m512d __B)
12675{
12676 return (__m512d) ((__v8df)__A - (__v8df)__B);
12677}
12678
12679extern __inline __m512d
12680__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12681_mm512_mask_sub_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12682{
12683 return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12684 (__v8df) __B,
12685 (__v8df) __W,
12686 (__mmask8) __U,
12688}
12689
12690extern __inline __m512d
12691__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12692_mm512_maskz_sub_pd (__mmask8 __U, __m512d __A, __m512d __B)
12693{
12694 return (__m512d) __builtin_ia32_subpd512_mask ((__v8df) __A,
12695 (__v8df) __B,
12696 (__v8df)
12697 _mm512_setzero_pd (),
12698 (__mmask8) __U,
12700}
12701
12702extern __inline __m512
12703__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12704_mm512_sub_ps (__m512 __A, __m512 __B)
12705{
12706 return (__m512) ((__v16sf)__A - (__v16sf)__B);
12707}
12708
12709extern __inline __m512
12710__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12711_mm512_mask_sub_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12712{
12713 return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12714 (__v16sf) __B,
12715 (__v16sf) __W,
12716 (__mmask16) __U,
12718}
12719
12720extern __inline __m512
12721__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12722_mm512_maskz_sub_ps (__mmask16 __U, __m512 __A, __m512 __B)
12723{
12724 return (__m512) __builtin_ia32_subps512_mask ((__v16sf) __A,
12725 (__v16sf) __B,
12726 (__v16sf)
12727 _mm512_setzero_ps (),
12728 (__mmask16) __U,
12730}
12731
12732extern __inline __m128d
12733__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12734_mm_mask_sub_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
12735{
12736 return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12737 (__v2df) __B,
12738 (__v2df) __W,
12739 (__mmask8) __U,
12741}
12742
12743extern __inline __m128d
12744__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12745_mm_maskz_sub_sd (__mmask8 __U, __m128d __A, __m128d __B)
12746{
12747 return (__m128d) __builtin_ia32_subsd_mask_round ((__v2df) __A,
12748 (__v2df) __B,
12749 (__v2df)
12750 _mm_setzero_pd (),
12751 (__mmask8) __U,
12753}
12754
12755extern __inline __m128
12756__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12757_mm_mask_sub_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
12758{
12759 return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12760 (__v4sf) __B,
12761 (__v4sf) __W,
12762 (__mmask8) __U,
12764}
12765
12766extern __inline __m128
12767__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12768_mm_maskz_sub_ss (__mmask8 __U, __m128 __A, __m128 __B)
12769{
12770 return (__m128) __builtin_ia32_subss_mask_round ((__v4sf) __A,
12771 (__v4sf) __B,
12772 (__v4sf)
12773 _mm_setzero_ps (),
12774 (__mmask8) __U,
12776}
12777
12778extern __inline __m512d
12779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12780_mm512_mul_pd (__m512d __A, __m512d __B)
12781{
12782 return (__m512d) ((__v8df)__A * (__v8df)__B);
12783}
12784
12785extern __inline __m512d
12786__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12787_mm512_mask_mul_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
12788{
12789 return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12790 (__v8df) __B,
12791 (__v8df) __W,
12792 (__mmask8) __U,
12794}
12795
12796extern __inline __m512d
12797__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12798_mm512_maskz_mul_pd (__mmask8 __U, __m512d __A, __m512d __B)
12799{
12800 return (__m512d) __builtin_ia32_mulpd512_mask ((__v8df) __A,
12801 (__v8df) __B,
12802 (__v8df)
12803 _mm512_setzero_pd (),
12804 (__mmask8) __U,
12806}
12807
12808extern __inline __m512
12809__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12810_mm512_mul_ps (__m512 __A, __m512 __B)
12811{
12812 return (__m512) ((__v16sf)__A * (__v16sf)__B);
12813}
12814
12815extern __inline __m512
12816__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12817_mm512_mask_mul_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12818{
12819 return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12820 (__v16sf) __B,
12821 (__v16sf) __W,
12822 (__mmask16) __U,
12824}
12825
12826extern __inline __m512
12827__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12828_mm512_maskz_mul_ps (__mmask16 __U, __m512 __A, __m512 __B)
12829{
12830 return (__m512) __builtin_ia32_mulps512_mask ((__v16sf) __A,
12831 (__v16sf) __B,
12832 (__v16sf)
12833 _mm512_setzero_ps (),
12834 (__mmask16) __U,
12836}
12837
12838extern __inline __m128d
12839__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12840_mm_mask_mul_sd (__m128d __W, __mmask8 __U, __m128d __A,
12841 __m128d __B)
12842{
12843 return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12844 (__v2df) __B,
12845 (__v2df) __W,
12846 (__mmask8) __U,
12848}
12849
12850extern __inline __m128d
12851__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12852_mm_maskz_mul_sd (__mmask8 __U, __m128d __A, __m128d __B)
12853{
12854 return (__m128d) __builtin_ia32_mulsd_mask_round ((__v2df) __A,
12855 (__v2df) __B,
12856 (__v2df)
12857 _mm_setzero_pd (),
12858 (__mmask8) __U,
12860}
12861
12862extern __inline __m128
12863__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12864_mm_mask_mul_ss (__m128 __W, __mmask8 __U, __m128 __A,
12865 __m128 __B)
12866{
12867 return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12868 (__v4sf) __B,
12869 (__v4sf) __W,
12870 (__mmask8) __U,
12872}
12873
12874extern __inline __m128
12875__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12876_mm_maskz_mul_ss (__mmask8 __U, __m128 __A, __m128 __B)
12877{
12878 return (__m128) __builtin_ia32_mulss_mask_round ((__v4sf) __A,
12879 (__v4sf) __B,
12880 (__v4sf)
12881 _mm_setzero_ps (),
12882 (__mmask8) __U,
12884}
12885
12886extern __inline __m512d
12887__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12888_mm512_div_pd (__m512d __M, __m512d __V)
12889{
12890 return (__m512d) ((__v8df)__M / (__v8df)__V);
12891}
12892
12893extern __inline __m512d
12894__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12895_mm512_mask_div_pd (__m512d __W, __mmask8 __U, __m512d __M, __m512d __V)
12896{
12897 return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12898 (__v8df) __V,
12899 (__v8df) __W,
12900 (__mmask8) __U,
12902}
12903
12904extern __inline __m512d
12905__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12906_mm512_maskz_div_pd (__mmask8 __U, __m512d __M, __m512d __V)
12907{
12908 return (__m512d) __builtin_ia32_divpd512_mask ((__v8df) __M,
12909 (__v8df) __V,
12910 (__v8df)
12911 _mm512_setzero_pd (),
12912 (__mmask8) __U,
12914}
12915
12916extern __inline __m512
12917__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12918_mm512_div_ps (__m512 __A, __m512 __B)
12919{
12920 return (__m512) ((__v16sf)__A / (__v16sf)__B);
12921}
12922
12923extern __inline __m512
12924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12925_mm512_mask_div_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
12926{
12927 return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12928 (__v16sf) __B,
12929 (__v16sf) __W,
12930 (__mmask16) __U,
12932}
12933
12934extern __inline __m512
12935__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12936_mm512_maskz_div_ps (__mmask16 __U, __m512 __A, __m512 __B)
12937{
12938 return (__m512) __builtin_ia32_divps512_mask ((__v16sf) __A,
12939 (__v16sf) __B,
12940 (__v16sf)
12941 _mm512_setzero_ps (),
12942 (__mmask16) __U,
12944}
12945
12946extern __inline __m128d
12947__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12948_mm_mask_div_sd (__m128d __W, __mmask8 __U, __m128d __A,
12949 __m128d __B)
12950{
12951 return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12952 (__v2df) __B,
12953 (__v2df) __W,
12954 (__mmask8) __U,
12956}
12957
12958extern __inline __m128d
12959__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12960_mm_maskz_div_sd (__mmask8 __U, __m128d __A, __m128d __B)
12961{
12962 return (__m128d) __builtin_ia32_divsd_mask_round ((__v2df) __A,
12963 (__v2df) __B,
12964 (__v2df)
12965 _mm_setzero_pd (),
12966 (__mmask8) __U,
12968}
12969
12970extern __inline __m128
12971__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12972_mm_mask_div_ss (__m128 __W, __mmask8 __U, __m128 __A,
12973 __m128 __B)
12974{
12975 return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12976 (__v4sf) __B,
12977 (__v4sf) __W,
12978 (__mmask8) __U,
12980}
12981
12982extern __inline __m128
12983__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12984_mm_maskz_div_ss (__mmask8 __U, __m128 __A, __m128 __B)
12985{
12986 return (__m128) __builtin_ia32_divss_mask_round ((__v4sf) __A,
12987 (__v4sf) __B,
12988 (__v4sf)
12989 _mm_setzero_ps (),
12990 (__mmask8) __U,
12992}
12993
12994extern __inline __m512d
12995__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
12996_mm512_max_pd (__m512d __A, __m512d __B)
12997{
12998 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
12999 (__v8df) __B,
13000 (__v8df)
13001 _mm512_undefined_pd (),
13002 (__mmask8) -1,
13004}
13005
13006extern __inline __m512d
13007__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13008_mm512_mask_max_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
13009{
13010 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
13011 (__v8df) __B,
13012 (__v8df) __W,
13013 (__mmask8) __U,
13015}
13016
13017extern __inline __m512d
13018__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13019_mm512_maskz_max_pd (__mmask8 __U, __m512d __A, __m512d __B)
13020{
13021 return (__m512d) __builtin_ia32_maxpd512_mask ((__v8df) __A,
13022 (__v8df) __B,
13023 (__v8df)
13024 _mm512_setzero_pd (),
13025 (__mmask8) __U,
13027}
13028
13029extern __inline __m512
13030__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13031_mm512_max_ps (__m512 __A, __m512 __B)
13032{
13033 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
13034 (__v16sf) __B,
13035 (__v16sf)
13036 _mm512_undefined_ps (),
13037 (__mmask16) -1,
13039}
13040
13041extern __inline __m512
13042__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13043_mm512_mask_max_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
13044{
13045 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
13046 (__v16sf) __B,
13047 (__v16sf) __W,
13048 (__mmask16) __U,
13050}
13051
13052extern __inline __m512
13053__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13054_mm512_maskz_max_ps (__mmask16 __U, __m512 __A, __m512 __B)
13055{
13056 return (__m512) __builtin_ia32_maxps512_mask ((__v16sf) __A,
13057 (__v16sf) __B,
13058 (__v16sf)
13059 _mm512_setzero_ps (),
13060 (__mmask16) __U,
13062}
13063
13064extern __inline __m128d
13065__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13066_mm_mask_max_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
13067{
13068 return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
13069 (__v2df) __B,
13070 (__v2df) __W,
13071 (__mmask8) __U,
13073}
13074
13075extern __inline __m128d
13076__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13077_mm_maskz_max_sd (__mmask8 __U, __m128d __A, __m128d __B)
13078{
13079 return (__m128d) __builtin_ia32_maxsd_mask_round ((__v2df) __A,
13080 (__v2df) __B,
13081 (__v2df)
13082 _mm_setzero_pd (),
13083 (__mmask8) __U,
13085}
13086
13087extern __inline __m128
13088__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13089_mm_mask_max_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
13090{
13091 return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
13092 (__v4sf) __B,
13093 (__v4sf) __W,
13094 (__mmask8) __U,
13096}
13097
13098extern __inline __m128
13099__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13100_mm_maskz_max_ss (__mmask8 __U, __m128 __A, __m128 __B)
13101{
13102 return (__m128) __builtin_ia32_maxss_mask_round ((__v4sf) __A,
13103 (__v4sf) __B,
13104 (__v4sf)
13105 _mm_setzero_ps (),
13106 (__mmask8) __U,
13108}
13109
13110extern __inline __m512d
13111__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13112_mm512_min_pd (__m512d __A, __m512d __B)
13113{
13114 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
13115 (__v8df) __B,
13116 (__v8df)
13117 _mm512_undefined_pd (),
13118 (__mmask8) -1,
13120}
13121
13122extern __inline __m512d
13123__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13124_mm512_mask_min_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
13125{
13126 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
13127 (__v8df) __B,
13128 (__v8df) __W,
13129 (__mmask8) __U,
13131}
13132
13133extern __inline __m512d
13134__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13135_mm512_maskz_min_pd (__mmask8 __U, __m512d __A, __m512d __B)
13136{
13137 return (__m512d) __builtin_ia32_minpd512_mask ((__v8df) __A,
13138 (__v8df) __B,
13139 (__v8df)
13140 _mm512_setzero_pd (),
13141 (__mmask8) __U,
13143}
13144
13145extern __inline __m512
13146__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13147_mm512_min_ps (__m512 __A, __m512 __B)
13148{
13149 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
13150 (__v16sf) __B,
13151 (__v16sf)
13152 _mm512_undefined_ps (),
13153 (__mmask16) -1,
13155}
13156
13157extern __inline __m512
13158__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13159_mm512_mask_min_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
13160{
13161 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
13162 (__v16sf) __B,
13163 (__v16sf) __W,
13164 (__mmask16) __U,
13166}
13167
13168extern __inline __m512
13169__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13170_mm512_maskz_min_ps (__mmask16 __U, __m512 __A, __m512 __B)
13171{
13172 return (__m512) __builtin_ia32_minps512_mask ((__v16sf) __A,
13173 (__v16sf) __B,
13174 (__v16sf)
13175 _mm512_setzero_ps (),
13176 (__mmask16) __U,
13178}
13179
13180extern __inline __m128d
13181__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13182_mm_mask_min_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
13183{
13184 return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
13185 (__v2df) __B,
13186 (__v2df) __W,
13187 (__mmask8) __U,
13189}
13190
13191extern __inline __m128d
13192__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13193_mm_maskz_min_sd (__mmask8 __U, __m128d __A, __m128d __B)
13194{
13195 return (__m128d) __builtin_ia32_minsd_mask_round ((__v2df) __A,
13196 (__v2df) __B,
13197 (__v2df)
13198 _mm_setzero_pd (),
13199 (__mmask8) __U,
13201}
13202
13203extern __inline __m128
13204__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13205_mm_mask_min_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
13206{
13207 return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
13208 (__v4sf) __B,
13209 (__v4sf) __W,
13210 (__mmask8) __U,
13212}
13213
13214extern __inline __m128
13215__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13216_mm_maskz_min_ss (__mmask8 __U, __m128 __A, __m128 __B)
13217{
13218 return (__m128) __builtin_ia32_minss_mask_round ((__v4sf) __A,
13219 (__v4sf) __B,
13220 (__v4sf)
13221 _mm_setzero_ps (),
13222 (__mmask8) __U,
13224}
13225
13226extern __inline __m512d
13227__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13228_mm512_scalef_pd (__m512d __A, __m512d __B)
13229{
13230 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13231 (__v8df) __B,
13232 (__v8df)
13233 _mm512_undefined_pd (),
13234 (__mmask8) -1,
13236}
13237
13238extern __inline __m512d
13239__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13240_mm512_mask_scalef_pd (__m512d __W, __mmask8 __U, __m512d __A, __m512d __B)
13241{
13242 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13243 (__v8df) __B,
13244 (__v8df) __W,
13245 (__mmask8) __U,
13247}
13248
13249extern __inline __m512d
13250__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13251_mm512_maskz_scalef_pd (__mmask8 __U, __m512d __A, __m512d __B)
13252{
13253 return (__m512d) __builtin_ia32_scalefpd512_mask ((__v8df) __A,
13254 (__v8df) __B,
13255 (__v8df)
13256 _mm512_setzero_pd (),
13257 (__mmask8) __U,
13259}
13260
13261extern __inline __m512
13262__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13263_mm512_scalef_ps (__m512 __A, __m512 __B)
13264{
13265 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13266 (__v16sf) __B,
13267 (__v16sf)
13268 _mm512_undefined_ps (),
13269 (__mmask16) -1,
13271}
13272
13273extern __inline __m512
13274__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13275_mm512_mask_scalef_ps (__m512 __W, __mmask16 __U, __m512 __A, __m512 __B)
13276{
13277 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13278 (__v16sf) __B,
13279 (__v16sf) __W,
13280 (__mmask16) __U,
13282}
13283
13284extern __inline __m512
13285__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13286_mm512_maskz_scalef_ps (__mmask16 __U, __m512 __A, __m512 __B)
13287{
13288 return (__m512) __builtin_ia32_scalefps512_mask ((__v16sf) __A,
13289 (__v16sf) __B,
13290 (__v16sf)
13291 _mm512_setzero_ps (),
13292 (__mmask16) __U,
13294}
13295
13296extern __inline __m128d
13297__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13298_mm_scalef_sd (__m128d __A, __m128d __B)
13299{
13300 return (__m128d) __builtin_ia32_scalefsd_mask_round ((__v2df) __A,
13301 (__v2df) __B,
13302 (__v2df)
13303 _mm_setzero_pd (),
13304 (__mmask8) -1,
13306}
13307
13308extern __inline __m128
13309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13310_mm_scalef_ss (__m128 __A, __m128 __B)
13311{
13312 return (__m128) __builtin_ia32_scalefss_mask_round ((__v4sf) __A,
13313 (__v4sf) __B,
13314 (__v4sf)
13315 _mm_setzero_ps (),
13316 (__mmask8) -1,
13318}
13319
13320extern __inline __m512d
13321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13322_mm512_fmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13323{
13324 return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13325 (__v8df) __B,
13326 (__v8df) __C,
13327 (__mmask8) -1,
13329}
13330
13331extern __inline __m512d
13332__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13333_mm512_mask_fmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13334{
13335 return (__m512d) __builtin_ia32_vfmaddpd512_mask ((__v8df) __A,
13336 (__v8df) __B,
13337 (__v8df) __C,
13338 (__mmask8) __U,
13340}
13341
13342extern __inline __m512d
13343__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13344_mm512_mask3_fmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13345{
13346 return (__m512d) __builtin_ia32_vfmaddpd512_mask3 ((__v8df) __A,
13347 (__v8df) __B,
13348 (__v8df) __C,
13349 (__mmask8) __U,
13351}
13352
13353extern __inline __m512d
13354__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13355_mm512_maskz_fmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13356{
13357 return (__m512d) __builtin_ia32_vfmaddpd512_maskz ((__v8df) __A,
13358 (__v8df) __B,
13359 (__v8df) __C,
13360 (__mmask8) __U,
13362}
13363
13364extern __inline __m512
13365__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13366_mm512_fmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13367{
13368 return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13369 (__v16sf) __B,
13370 (__v16sf) __C,
13371 (__mmask16) -1,
13373}
13374
13375extern __inline __m512
13376__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13377_mm512_mask_fmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13378{
13379 return (__m512) __builtin_ia32_vfmaddps512_mask ((__v16sf) __A,
13380 (__v16sf) __B,
13381 (__v16sf) __C,
13382 (__mmask16) __U,
13384}
13385
13386extern __inline __m512
13387__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13388_mm512_mask3_fmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13389{
13390 return (__m512) __builtin_ia32_vfmaddps512_mask3 ((__v16sf) __A,
13391 (__v16sf) __B,
13392 (__v16sf) __C,
13393 (__mmask16) __U,
13395}
13396
13397extern __inline __m512
13398__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13399_mm512_maskz_fmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13400{
13401 return (__m512) __builtin_ia32_vfmaddps512_maskz ((__v16sf) __A,
13402 (__v16sf) __B,
13403 (__v16sf) __C,
13404 (__mmask16) __U,
13406}
13407
13408extern __inline __m512d
13409__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13410_mm512_fmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13411{
13412 return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13413 (__v8df) __B,
13414 (__v8df) __C,
13415 (__mmask8) -1,
13417}
13418
13419extern __inline __m512d
13420__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13421_mm512_mask_fmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13422{
13423 return (__m512d) __builtin_ia32_vfmsubpd512_mask ((__v8df) __A,
13424 (__v8df) __B,
13425 (__v8df) __C,
13426 (__mmask8) __U,
13428}
13429
13430extern __inline __m512d
13431__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13432_mm512_mask3_fmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13433{
13434 return (__m512d) __builtin_ia32_vfmsubpd512_mask3 ((__v8df) __A,
13435 (__v8df) __B,
13436 (__v8df) __C,
13437 (__mmask8) __U,
13439}
13440
13441extern __inline __m512d
13442__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13443_mm512_maskz_fmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13444{
13445 return (__m512d) __builtin_ia32_vfmsubpd512_maskz ((__v8df) __A,
13446 (__v8df) __B,
13447 (__v8df) __C,
13448 (__mmask8) __U,
13450}
13451
13452extern __inline __m512
13453__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13454_mm512_fmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13455{
13456 return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13457 (__v16sf) __B,
13458 (__v16sf) __C,
13459 (__mmask16) -1,
13461}
13462
13463extern __inline __m512
13464__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13465_mm512_mask_fmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13466{
13467 return (__m512) __builtin_ia32_vfmsubps512_mask ((__v16sf) __A,
13468 (__v16sf) __B,
13469 (__v16sf) __C,
13470 (__mmask16) __U,
13472}
13473
13474extern __inline __m512
13475__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13476_mm512_mask3_fmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13477{
13478 return (__m512) __builtin_ia32_vfmsubps512_mask3 ((__v16sf) __A,
13479 (__v16sf) __B,
13480 (__v16sf) __C,
13481 (__mmask16) __U,
13483}
13484
13485extern __inline __m512
13486__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13487_mm512_maskz_fmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13488{
13489 return (__m512) __builtin_ia32_vfmsubps512_maskz ((__v16sf) __A,
13490 (__v16sf) __B,
13491 (__v16sf) __C,
13492 (__mmask16) __U,
13494}
13495
13496extern __inline __m512d
13497__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13498_mm512_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C)
13499{
13500 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13501 (__v8df) __B,
13502 (__v8df) __C,
13503 (__mmask8) -1,
13505}
13506
13507extern __inline __m512d
13508__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13509_mm512_mask_fmaddsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13510{
13511 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13512 (__v8df) __B,
13513 (__v8df) __C,
13514 (__mmask8) __U,
13516}
13517
13518extern __inline __m512d
13519__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13520_mm512_mask3_fmaddsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13521{
13522 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask3 ((__v8df) __A,
13523 (__v8df) __B,
13524 (__v8df) __C,
13525 (__mmask8) __U,
13527}
13528
13529extern __inline __m512d
13530__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13531_mm512_maskz_fmaddsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13532{
13533 return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13534 (__v8df) __B,
13535 (__v8df) __C,
13536 (__mmask8) __U,
13538}
13539
13540extern __inline __m512
13541__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13542_mm512_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C)
13543{
13544 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13545 (__v16sf) __B,
13546 (__v16sf) __C,
13547 (__mmask16) -1,
13549}
13550
13551extern __inline __m512
13552__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13553_mm512_mask_fmaddsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13554{
13555 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13556 (__v16sf) __B,
13557 (__v16sf) __C,
13558 (__mmask16) __U,
13560}
13561
13562extern __inline __m512
13563__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13564_mm512_mask3_fmaddsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13565{
13566 return (__m512) __builtin_ia32_vfmaddsubps512_mask3 ((__v16sf) __A,
13567 (__v16sf) __B,
13568 (__v16sf) __C,
13569 (__mmask16) __U,
13571}
13572
13573extern __inline __m512
13574__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13575_mm512_maskz_fmaddsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13576{
13577 return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13578 (__v16sf) __B,
13579 (__v16sf) __C,
13580 (__mmask16) __U,
13582}
13583
13584extern __inline __m512d
13585__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13586_mm512_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C)
13587{
13588 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13589 (__v8df) __B,
13590 -(__v8df) __C,
13591 (__mmask8) -1,
13593}
13594
13595extern __inline __m512d
13596__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13597_mm512_mask_fmsubadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13598{
13599 return (__m512d) __builtin_ia32_vfmaddsubpd512_mask ((__v8df) __A,
13600 (__v8df) __B,
13601 -(__v8df) __C,
13602 (__mmask8) __U,
13604}
13605
13606extern __inline __m512d
13607__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13608_mm512_mask3_fmsubadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13609{
13610 return (__m512d) __builtin_ia32_vfmsubaddpd512_mask3 ((__v8df) __A,
13611 (__v8df) __B,
13612 (__v8df) __C,
13613 (__mmask8) __U,
13615}
13616
13617extern __inline __m512d
13618__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13619_mm512_maskz_fmsubadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13620{
13621 return (__m512d) __builtin_ia32_vfmaddsubpd512_maskz ((__v8df) __A,
13622 (__v8df) __B,
13623 -(__v8df) __C,
13624 (__mmask8) __U,
13626}
13627
13628extern __inline __m512
13629__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13630_mm512_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C)
13631{
13632 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13633 (__v16sf) __B,
13634 -(__v16sf) __C,
13635 (__mmask16) -1,
13637}
13638
13639extern __inline __m512
13640__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13641_mm512_mask_fmsubadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13642{
13643 return (__m512) __builtin_ia32_vfmaddsubps512_mask ((__v16sf) __A,
13644 (__v16sf) __B,
13645 -(__v16sf) __C,
13646 (__mmask16) __U,
13648}
13649
13650extern __inline __m512
13651__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13652_mm512_mask3_fmsubadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13653{
13654 return (__m512) __builtin_ia32_vfmsubaddps512_mask3 ((__v16sf) __A,
13655 (__v16sf) __B,
13656 (__v16sf) __C,
13657 (__mmask16) __U,
13659}
13660
13661extern __inline __m512
13662__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13663_mm512_maskz_fmsubadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13664{
13665 return (__m512) __builtin_ia32_vfmaddsubps512_maskz ((__v16sf) __A,
13666 (__v16sf) __B,
13667 -(__v16sf) __C,
13668 (__mmask16) __U,
13670}
13671
13672extern __inline __m512d
13673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13674_mm512_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C)
13675{
13676 return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13677 (__v8df) __B,
13678 (__v8df) __C,
13679 (__mmask8) -1,
13681}
13682
13683extern __inline __m512d
13684__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13685_mm512_mask_fnmadd_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13686{
13687 return (__m512d) __builtin_ia32_vfnmaddpd512_mask ((__v8df) __A,
13688 (__v8df) __B,
13689 (__v8df) __C,
13690 (__mmask8) __U,
13692}
13693
13694extern __inline __m512d
13695__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13696_mm512_mask3_fnmadd_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13697{
13698 return (__m512d) __builtin_ia32_vfnmaddpd512_mask3 ((__v8df) __A,
13699 (__v8df) __B,
13700 (__v8df) __C,
13701 (__mmask8) __U,
13703}
13704
13705extern __inline __m512d
13706__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13707_mm512_maskz_fnmadd_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13708{
13709 return (__m512d) __builtin_ia32_vfnmaddpd512_maskz ((__v8df) __A,
13710 (__v8df) __B,
13711 (__v8df) __C,
13712 (__mmask8) __U,
13714}
13715
13716extern __inline __m512
13717__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13718_mm512_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C)
13719{
13720 return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13721 (__v16sf) __B,
13722 (__v16sf) __C,
13723 (__mmask16) -1,
13725}
13726
13727extern __inline __m512
13728__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13729_mm512_mask_fnmadd_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13730{
13731 return (__m512) __builtin_ia32_vfnmaddps512_mask ((__v16sf) __A,
13732 (__v16sf) __B,
13733 (__v16sf) __C,
13734 (__mmask16) __U,
13736}
13737
13738extern __inline __m512
13739__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13740_mm512_mask3_fnmadd_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13741{
13742 return (__m512) __builtin_ia32_vfnmaddps512_mask3 ((__v16sf) __A,
13743 (__v16sf) __B,
13744 (__v16sf) __C,
13745 (__mmask16) __U,
13747}
13748
13749extern __inline __m512
13750__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13751_mm512_maskz_fnmadd_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13752{
13753 return (__m512) __builtin_ia32_vfnmaddps512_maskz ((__v16sf) __A,
13754 (__v16sf) __B,
13755 (__v16sf) __C,
13756 (__mmask16) __U,
13758}
13759
13760extern __inline __m512d
13761__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13762_mm512_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C)
13763{
13764 return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13765 (__v8df) __B,
13766 (__v8df) __C,
13767 (__mmask8) -1,
13769}
13770
13771extern __inline __m512d
13772__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13773_mm512_mask_fnmsub_pd (__m512d __A, __mmask8 __U, __m512d __B, __m512d __C)
13774{
13775 return (__m512d) __builtin_ia32_vfnmsubpd512_mask ((__v8df) __A,
13776 (__v8df) __B,
13777 (__v8df) __C,
13778 (__mmask8) __U,
13780}
13781
13782extern __inline __m512d
13783__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13784_mm512_mask3_fnmsub_pd (__m512d __A, __m512d __B, __m512d __C, __mmask8 __U)
13785{
13786 return (__m512d) __builtin_ia32_vfnmsubpd512_mask3 ((__v8df) __A,
13787 (__v8df) __B,
13788 (__v8df) __C,
13789 (__mmask8) __U,
13791}
13792
13793extern __inline __m512d
13794__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13795_mm512_maskz_fnmsub_pd (__mmask8 __U, __m512d __A, __m512d __B, __m512d __C)
13796{
13797 return (__m512d) __builtin_ia32_vfnmsubpd512_maskz ((__v8df) __A,
13798 (__v8df) __B,
13799 (__v8df) __C,
13800 (__mmask8) __U,
13802}
13803
13804extern __inline __m512
13805__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13806_mm512_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C)
13807{
13808 return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13809 (__v16sf) __B,
13810 (__v16sf) __C,
13811 (__mmask16) -1,
13813}
13814
13815extern __inline __m512
13816__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13817_mm512_mask_fnmsub_ps (__m512 __A, __mmask16 __U, __m512 __B, __m512 __C)
13818{
13819 return (__m512) __builtin_ia32_vfnmsubps512_mask ((__v16sf) __A,
13820 (__v16sf) __B,
13821 (__v16sf) __C,
13822 (__mmask16) __U,
13824}
13825
13826extern __inline __m512
13827__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13828_mm512_mask3_fnmsub_ps (__m512 __A, __m512 __B, __m512 __C, __mmask16 __U)
13829{
13830 return (__m512) __builtin_ia32_vfnmsubps512_mask3 ((__v16sf) __A,
13831 (__v16sf) __B,
13832 (__v16sf) __C,
13833 (__mmask16) __U,
13835}
13836
13837extern __inline __m512
13838__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13839_mm512_maskz_fnmsub_ps (__mmask16 __U, __m512 __A, __m512 __B, __m512 __C)
13840{
13841 return (__m512) __builtin_ia32_vfnmsubps512_maskz ((__v16sf) __A,
13842 (__v16sf) __B,
13843 (__v16sf) __C,
13844 (__mmask16) __U,
13846}
13847
13848extern __inline __m256i
13849__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13850_mm512_cvttpd_epi32 (__m512d __A)
13851{
13852 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13853 (__v8si)
13854 _mm256_undefined_si256 (),
13855 (__mmask8) -1,
13857}
13858
13859extern __inline __m256i
13860__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13861_mm512_mask_cvttpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13862{
13863 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13864 (__v8si) __W,
13865 (__mmask8) __U,
13867}
13868
13869extern __inline __m256i
13870__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13871_mm512_maskz_cvttpd_epi32 (__mmask8 __U, __m512d __A)
13872{
13873 return (__m256i) __builtin_ia32_cvttpd2dq512_mask ((__v8df) __A,
13874 (__v8si)
13875 _mm256_setzero_si256 (),
13876 (__mmask8) __U,
13878}
13879
13880extern __inline __m256i
13881__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13882_mm512_cvttpd_epu32 (__m512d __A)
13883{
13884 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13885 (__v8si)
13886 _mm256_undefined_si256 (),
13887 (__mmask8) -1,
13889}
13890
13891extern __inline __m256i
13892__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13893_mm512_mask_cvttpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13894{
13895 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13896 (__v8si) __W,
13897 (__mmask8) __U,
13899}
13900
13901extern __inline __m256i
13902__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13903_mm512_maskz_cvttpd_epu32 (__mmask8 __U, __m512d __A)
13904{
13905 return (__m256i) __builtin_ia32_cvttpd2udq512_mask ((__v8df) __A,
13906 (__v8si)
13907 _mm256_setzero_si256 (),
13908 (__mmask8) __U,
13910}
13911
13912extern __inline __m256i
13913__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13914_mm512_cvtpd_epi32 (__m512d __A)
13915{
13916 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13917 (__v8si)
13918 _mm256_undefined_si256 (),
13919 (__mmask8) -1,
13921}
13922
13923extern __inline __m256i
13924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13925_mm512_mask_cvtpd_epi32 (__m256i __W, __mmask8 __U, __m512d __A)
13926{
13927 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13928 (__v8si) __W,
13929 (__mmask8) __U,
13931}
13932
13933extern __inline __m256i
13934__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13935_mm512_maskz_cvtpd_epi32 (__mmask8 __U, __m512d __A)
13936{
13937 return (__m256i) __builtin_ia32_cvtpd2dq512_mask ((__v8df) __A,
13938 (__v8si)
13939 _mm256_setzero_si256 (),
13940 (__mmask8) __U,
13942}
13943
13944extern __inline __m256i
13945__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13946_mm512_cvtpd_epu32 (__m512d __A)
13947{
13948 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13949 (__v8si)
13950 _mm256_undefined_si256 (),
13951 (__mmask8) -1,
13953}
13954
13955extern __inline __m256i
13956__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13957_mm512_mask_cvtpd_epu32 (__m256i __W, __mmask8 __U, __m512d __A)
13958{
13959 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13960 (__v8si) __W,
13961 (__mmask8) __U,
13963}
13964
13965extern __inline __m256i
13966__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13967_mm512_maskz_cvtpd_epu32 (__mmask8 __U, __m512d __A)
13968{
13969 return (__m256i) __builtin_ia32_cvtpd2udq512_mask ((__v8df) __A,
13970 (__v8si)
13971 _mm256_setzero_si256 (),
13972 (__mmask8) __U,
13974}
13975
13976extern __inline __m512i
13977__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13978_mm512_cvttps_epi32 (__m512 __A)
13979{
13980 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13981 (__v16si)
13982 _mm512_undefined_epi32 (),
13983 (__mmask16) -1,
13985}
13986
13987extern __inline __m512i
13988__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13989_mm512_mask_cvttps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
13990{
13991 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
13992 (__v16si) __W,
13993 (__mmask16) __U,
13995}
13996
13997extern __inline __m512i
13998__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
13999_mm512_maskz_cvttps_epi32 (__mmask16 __U, __m512 __A)
14000{
14001 return (__m512i) __builtin_ia32_cvttps2dq512_mask ((__v16sf) __A,
14002 (__v16si)
14003 _mm512_setzero_si512 (),
14004 (__mmask16) __U,
14006}
14007
14008extern __inline __m512i
14009__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14010_mm512_cvttps_epu32 (__m512 __A)
14011{
14012 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
14013 (__v16si)
14014 _mm512_undefined_epi32 (),
14015 (__mmask16) -1,
14017}
14018
14019extern __inline __m512i
14020__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14021_mm512_mask_cvttps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
14022{
14023 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
14024 (__v16si) __W,
14025 (__mmask16) __U,
14027}
14028
14029extern __inline __m512i
14030__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14031_mm512_maskz_cvttps_epu32 (__mmask16 __U, __m512 __A)
14032{
14033 return (__m512i) __builtin_ia32_cvttps2udq512_mask ((__v16sf) __A,
14034 (__v16si)
14035 _mm512_setzero_si512 (),
14036 (__mmask16) __U,
14038}
14039
14040extern __inline __m512i
14041__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14042_mm512_cvtps_epi32 (__m512 __A)
14043{
14044 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
14045 (__v16si)
14046 _mm512_undefined_epi32 (),
14047 (__mmask16) -1,
14049}
14050
14051extern __inline __m512i
14052__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14053_mm512_mask_cvtps_epi32 (__m512i __W, __mmask16 __U, __m512 __A)
14054{
14055 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
14056 (__v16si) __W,
14057 (__mmask16) __U,
14059}
14060
14061extern __inline __m512i
14062__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14063_mm512_maskz_cvtps_epi32 (__mmask16 __U, __m512 __A)
14064{
14065 return (__m512i) __builtin_ia32_cvtps2dq512_mask ((__v16sf) __A,
14066 (__v16si)
14067 _mm512_setzero_si512 (),
14068 (__mmask16) __U,
14070}
14071
14072extern __inline __m512i
14073__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14074_mm512_cvtps_epu32 (__m512 __A)
14075{
14076 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
14077 (__v16si)
14078 _mm512_undefined_epi32 (),
14079 (__mmask16) -1,
14081}
14082
14083extern __inline __m512i
14084__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14085_mm512_mask_cvtps_epu32 (__m512i __W, __mmask16 __U, __m512 __A)
14086{
14087 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
14088 (__v16si) __W,
14089 (__mmask16) __U,
14091}
14092
14093extern __inline __m512i
14094__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14095_mm512_maskz_cvtps_epu32 (__mmask16 __U, __m512 __A)
14096{
14097 return (__m512i) __builtin_ia32_cvtps2udq512_mask ((__v16sf) __A,
14098 (__v16si)
14099 _mm512_setzero_si512 (),
14100 (__mmask16) __U,
14102}
14103
14104extern __inline double
14105__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14106_mm512_cvtsd_f64 (__m512d __A)
14107{
14108 return __A[0];
14109}
14110
14111extern __inline float
14112__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14113_mm512_cvtss_f32 (__m512 __A)
14114{
14115 return __A[0];
14116}
14117
14118#ifdef __x86_64__
14119extern __inline __m128
14120__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14121_mm_cvtu64_ss (__m128 __A, unsigned long long __B)
14122{
14123 return (__m128) __builtin_ia32_cvtusi2ss64 ((__v4sf) __A, __B,
14125}
14126
14127extern __inline __m128d
14128__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14129_mm_cvtu64_sd (__m128d __A, unsigned long long __B)
14130{
14131 return (__m128d) __builtin_ia32_cvtusi2sd64 ((__v2df) __A, __B,
14133}
14134#endif
14135
14136extern __inline __m128
14137__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14138_mm_cvtu32_ss (__m128 __A, unsigned __B)
14139{
14140 return (__m128) __builtin_ia32_cvtusi2ss32 ((__v4sf) __A, __B,
14142}
14143
14144extern __inline __m512
14145__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14146_mm512_cvtepi32_ps (__m512i __A)
14147{
14148 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
14149 (__v16sf)
14150 _mm512_undefined_ps (),
14151 (__mmask16) -1,
14153}
14154
14155extern __inline __m512
14156__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14157_mm512_mask_cvtepi32_ps (__m512 __W, __mmask16 __U, __m512i __A)
14158{
14159 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
14160 (__v16sf) __W,
14161 (__mmask16) __U,
14163}
14164
14165extern __inline __m512
14166__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14167_mm512_maskz_cvtepi32_ps (__mmask16 __U, __m512i __A)
14168{
14169 return (__m512) __builtin_ia32_cvtdq2ps512_mask ((__v16si) __A,
14170 (__v16sf)
14171 _mm512_setzero_ps (),
14172 (__mmask16) __U,
14174}
14175
14176extern __inline __m512
14177__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14178_mm512_cvtepu32_ps (__m512i __A)
14179{
14180 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14181 (__v16sf)
14182 _mm512_undefined_ps (),
14183 (__mmask16) -1,
14185}
14186
14187extern __inline __m512
14188__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14189_mm512_mask_cvtepu32_ps (__m512 __W, __mmask16 __U, __m512i __A)
14190{
14191 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14192 (__v16sf) __W,
14193 (__mmask16) __U,
14195}
14196
14197extern __inline __m512
14198__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14199_mm512_maskz_cvtepu32_ps (__mmask16 __U, __m512i __A)
14200{
14201 return (__m512) __builtin_ia32_cvtudq2ps512_mask ((__v16si) __A,
14202 (__v16sf)
14203 _mm512_setzero_ps (),
14204 (__mmask16) __U,
14206}
14207
14208#ifdef __OPTIMIZE__
14209extern __inline __m512d
14210__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14211_mm512_fixupimm_pd (__m512d __A, __m512d __B, __m512i __C, const int __imm)
14212{
14213 return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
14214 (__v8df) __B,
14215 (__v8di) __C,
14216 __imm,
14217 (__mmask8) -1,
14219}
14220
14221extern __inline __m512d
14222__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14223_mm512_mask_fixupimm_pd (__m512d __A, __mmask8 __U, __m512d __B,
14224 __m512i __C, const int __imm)
14225{
14226 return (__m512d) __builtin_ia32_fixupimmpd512_mask ((__v8df) __A,
14227 (__v8df) __B,
14228 (__v8di) __C,
14229 __imm,
14230 (__mmask8) __U,
14232}
14233
14234extern __inline __m512d
14235__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14236_mm512_maskz_fixupimm_pd (__mmask8 __U, __m512d __A, __m512d __B,
14237 __m512i __C, const int __imm)
14238{
14239 return (__m512d) __builtin_ia32_fixupimmpd512_maskz ((__v8df) __A,
14240 (__v8df) __B,
14241 (__v8di) __C,
14242 __imm,
14243 (__mmask8) __U,
14245}
14246
14247extern __inline __m512
14248__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14249_mm512_fixupimm_ps (__m512 __A, __m512 __B, __m512i __C, const int __imm)
14250{
14251 return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
14252 (__v16sf) __B,
14253 (__v16si) __C,
14254 __imm,
14255 (__mmask16) -1,
14257}
14258
14259extern __inline __m512
14260__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14262 __m512i __C, const int __imm)
14263{
14264 return (__m512) __builtin_ia32_fixupimmps512_mask ((__v16sf) __A,
14265 (__v16sf) __B,
14266 (__v16si) __C,
14267 __imm,
14268 (__mmask16) __U,
14270}
14271
14272extern __inline __m512
14273__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14275 __m512i __C, const int __imm)
14276{
14277 return (__m512) __builtin_ia32_fixupimmps512_maskz ((__v16sf) __A,
14278 (__v16sf) __B,
14279 (__v16si) __C,
14280 __imm,
14281 (__mmask16) __U,
14283}
14284
14285extern __inline __m128d
14286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14287_mm_fixupimm_sd (__m128d __A, __m128d __B, __m128i __C, const int __imm)
14288{
14289 return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
14290 (__v2df) __B,
14291 (__v2di) __C, __imm,
14292 (__mmask8) -1,
14294}
14295
14296extern __inline __m128d
14297__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14298_mm_mask_fixupimm_sd (__m128d __A, __mmask8 __U, __m128d __B,
14299 __m128i __C, const int __imm)
14300{
14301 return (__m128d) __builtin_ia32_fixupimmsd_mask ((__v2df) __A,
14302 (__v2df) __B,
14303 (__v2di) __C, __imm,
14304 (__mmask8) __U,
14306}
14307
14308extern __inline __m128d
14309__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14310_mm_maskz_fixupimm_sd (__mmask8 __U, __m128d __A, __m128d __B,
14311 __m128i __C, const int __imm)
14312{
14313 return (__m128d) __builtin_ia32_fixupimmsd_maskz ((__v2df) __A,
14314 (__v2df) __B,
14315 (__v2di) __C,
14316 __imm,
14317 (__mmask8) __U,
14319}
14320
14321extern __inline __m128
14322__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14323_mm_fixupimm_ss (__m128 __A, __m128 __B, __m128i __C, const int __imm)
14324{
14325 return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14326 (__v4sf) __B,
14327 (__v4si) __C, __imm,
14328 (__mmask8) -1,
14330}
14331
14332extern __inline __m128
14333__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14334_mm_mask_fixupimm_ss (__m128 __A, __mmask8 __U, __m128 __B,
14335 __m128i __C, const int __imm)
14336{
14337 return (__m128) __builtin_ia32_fixupimmss_mask ((__v4sf) __A,
14338 (__v4sf) __B,
14339 (__v4si) __C, __imm,
14340 (__mmask8) __U,
14342}
14343
14344extern __inline __m128
14345__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14346_mm_maskz_fixupimm_ss (__mmask8 __U, __m128 __A, __m128 __B,
14347 __m128i __C, const int __imm)
14348{
14349 return (__m128) __builtin_ia32_fixupimmss_maskz ((__v4sf) __A,
14350 (__v4sf) __B,
14351 (__v4si) __C, __imm,
14352 (__mmask8) __U,
14354}
14355#else
14356#define _mm512_fixupimm_pd(X, Y, Z, C) \
14357 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
14358 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
14359 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14360
14361#define _mm512_mask_fixupimm_pd(X, U, Y, Z, C) \
14362 ((__m512d)__builtin_ia32_fixupimmpd512_mask ((__v8df)(__m512d)(X), \
14363 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
14364 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14365
14366#define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C) \
14367 ((__m512d)__builtin_ia32_fixupimmpd512_maskz ((__v8df)(__m512d)(X), \
14368 (__v8df)(__m512d)(Y), (__v8di)(__m512i)(Z), (int)(C), \
14369 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14370
14371#define _mm512_fixupimm_ps(X, Y, Z, C) \
14372 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
14373 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
14374 (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
14375
14376#define _mm512_mask_fixupimm_ps(X, U, Y, Z, C) \
14377 ((__m512)__builtin_ia32_fixupimmps512_mask ((__v16sf)(__m512)(X), \
14378 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
14379 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14380
14381#define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C) \
14382 ((__m512)__builtin_ia32_fixupimmps512_maskz ((__v16sf)(__m512)(X), \
14383 (__v16sf)(__m512)(Y), (__v16si)(__m512i)(Z), (int)(C), \
14384 (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
14385
14386#define _mm_fixupimm_sd(X, Y, Z, C) \
14387 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
14388 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
14389 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14390
14391#define _mm_mask_fixupimm_sd(X, U, Y, Z, C) \
14392 ((__m128d)__builtin_ia32_fixupimmsd_mask ((__v2df)(__m128d)(X), \
14393 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
14394 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14395
14396#define _mm_maskz_fixupimm_sd(U, X, Y, Z, C) \
14397 ((__m128d)__builtin_ia32_fixupimmsd_maskz ((__v2df)(__m128d)(X), \
14398 (__v2df)(__m128d)(Y), (__v2di)(__m128i)(Z), (int)(C), \
14399 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14400
14401#define _mm_fixupimm_ss(X, Y, Z, C) \
14402 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
14403 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
14404 (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
14405
14406#define _mm_mask_fixupimm_ss(X, U, Y, Z, C) \
14407 ((__m128)__builtin_ia32_fixupimmss_mask ((__v4sf)(__m128)(X), \
14408 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
14409 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14410
14411#define _mm_maskz_fixupimm_ss(U, X, Y, Z, C) \
14412 ((__m128)__builtin_ia32_fixupimmss_maskz ((__v4sf)(__m128)(X), \
14413 (__v4sf)(__m128)(Y), (__v4si)(__m128i)(Z), (int)(C), \
14414 (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
14415#endif
14416
14417#ifdef __x86_64__
14418extern __inline unsigned long long
14419__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14420_mm_cvtss_u64 (__m128 __A)
14421{
14422 return (unsigned long long) __builtin_ia32_vcvtss2usi64 ((__v4sf)
14423 __A,
14425}
14426
14427extern __inline unsigned long long
14428__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14429_mm_cvttss_u64 (__m128 __A)
14430{
14431 return (unsigned long long) __builtin_ia32_vcvttss2usi64 ((__v4sf)
14432 __A,
14434}
14435
14436extern __inline long long
14437__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14438_mm_cvttss_i64 (__m128 __A)
14439{
14440 return (long long) __builtin_ia32_vcvttss2si64 ((__v4sf) __A,
14442}
14443#endif /* __x86_64__ */
14444
14445extern __inline int
14446__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14447_mm512_cvtsi512_si32 (__m512i __A)
14448{
14449 __v16si __B = (__v16si) __A;
14450 return __B[0];
14451}
14452
14453extern __inline unsigned
14454__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14455_mm_cvtss_u32 (__m128 __A)
14456{
14457 return (unsigned) __builtin_ia32_vcvtss2usi32 ((__v4sf) __A,
14459}
14460
14461extern __inline unsigned
14462__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14463_mm_cvttss_u32 (__m128 __A)
14464{
14465 return (unsigned) __builtin_ia32_vcvttss2usi32 ((__v4sf) __A,
14467}
14468
14469extern __inline int
14470__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14471_mm_cvttss_i32 (__m128 __A)
14472{
14473 return (int) __builtin_ia32_vcvttss2si32 ((__v4sf) __A,
14475}
14476
14477extern __inline int
14478__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14479_mm_cvtsd_i32 (__m128d __A)
14480{
14481 return (int) __builtin_ia32_cvtsd2si ((__v2df) __A);
14482}
14483
14484extern __inline int
14485__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14486_mm_cvtss_i32 (__m128 __A)
14487{
14488 return (int) __builtin_ia32_cvtss2si ((__v4sf) __A);
14489}
14490
14491extern __inline __m128d
14492__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14493_mm_cvti32_sd (__m128d __A, int __B)
14494{
14495 return (__m128d) __builtin_ia32_cvtsi2sd ((__v2df) __A, __B);
14496}
14497
14498extern __inline __m128
14499__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14500_mm_cvti32_ss (__m128 __A, int __B)
14501{
14502 return (__m128) __builtin_ia32_cvtsi2ss ((__v4sf) __A, __B);
14503}
14504
14505#ifdef __x86_64__
14506extern __inline unsigned long long
14507__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14508_mm_cvtsd_u64 (__m128d __A)
14509{
14510 return (unsigned long long) __builtin_ia32_vcvtsd2usi64 ((__v2df)
14511 __A,
14513}
14514
14515extern __inline unsigned long long
14516__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14517_mm_cvttsd_u64 (__m128d __A)
14518{
14519 return (unsigned long long) __builtin_ia32_vcvttsd2usi64 ((__v2df)
14520 __A,
14522}
14523
14524extern __inline long long
14525__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14526_mm_cvttsd_i64 (__m128d __A)
14527{
14528 return (long long) __builtin_ia32_vcvttsd2si64 ((__v2df) __A,
14530}
14531
14532extern __inline long long
14533__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14534_mm_cvtsd_i64 (__m128d __A)
14535{
14536 return (long long) __builtin_ia32_cvtsd2si64 ((__v2df) __A);
14537}
14538
14539extern __inline long long
14540__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14541_mm_cvtss_i64 (__m128 __A)
14542{
14543 return (long long) __builtin_ia32_cvtss2si64 ((__v4sf) __A);
14544}
14545
14546extern __inline __m128d
14547__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14548_mm_cvti64_sd (__m128d __A, long long __B)
14549{
14550 return (__m128d) __builtin_ia32_cvtsi642sd ((__v2df) __A, __B);
14551}
14552
14553extern __inline __m128
14554__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14555_mm_cvti64_ss (__m128 __A, long long __B)
14556{
14557 return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B);
14558}
14559#endif /* __x86_64__ */
14560
14561extern __inline unsigned
14562__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14563_mm_cvtsd_u32 (__m128d __A)
14564{
14565 return (unsigned) __builtin_ia32_vcvtsd2usi32 ((__v2df) __A,
14567}
14568
14569extern __inline unsigned
14570__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14571_mm_cvttsd_u32 (__m128d __A)
14572{
14573 return (unsigned) __builtin_ia32_vcvttsd2usi32 ((__v2df) __A,
14575}
14576
14577extern __inline int
14578__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14579_mm_cvttsd_i32 (__m128d __A)
14580{
14581 return (int) __builtin_ia32_vcvttsd2si32 ((__v2df) __A,
14583}
14584
14585extern __inline __m512d
14586__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14587_mm512_cvtps_pd (__m256 __A)
14588{
14589 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14590 (__v8df)
14591 _mm512_undefined_pd (),
14592 (__mmask8) -1,
14594}
14595
14596extern __inline __m512d
14597__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14598_mm512_mask_cvtps_pd (__m512d __W, __mmask8 __U, __m256 __A)
14599{
14600 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14601 (__v8df) __W,
14602 (__mmask8) __U,
14604}
14605
14606extern __inline __m512d
14607__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14608_mm512_maskz_cvtps_pd (__mmask8 __U, __m256 __A)
14609{
14610 return (__m512d) __builtin_ia32_cvtps2pd512_mask ((__v8sf) __A,
14611 (__v8df)
14612 _mm512_setzero_pd (),
14613 (__mmask8) __U,
14615}
14616
14617extern __inline __m512
14618__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14619_mm512_cvtph_ps (__m256i __A)
14620{
14621 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14622 (__v16sf)
14623 _mm512_undefined_ps (),
14624 (__mmask16) -1,
14626}
14627
14628extern __inline __m512
14629__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14630_mm512_mask_cvtph_ps (__m512 __W, __mmask16 __U, __m256i __A)
14631{
14632 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14633 (__v16sf) __W,
14634 (__mmask16) __U,
14636}
14637
14638extern __inline __m512
14639__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14640_mm512_maskz_cvtph_ps (__mmask16 __U, __m256i __A)
14641{
14642 return (__m512) __builtin_ia32_vcvtph2ps512_mask ((__v16hi) __A,
14643 (__v16sf)
14644 _mm512_setzero_ps (),
14645 (__mmask16) __U,
14647}
14648
14649extern __inline __m256
14650__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14651_mm512_cvtpd_ps (__m512d __A)
14652{
14653 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14654 (__v8sf)
14655 _mm256_undefined_ps (),
14656 (__mmask8) -1,
14658}
14659
14660extern __inline __m256
14661__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14662_mm512_mask_cvtpd_ps (__m256 __W, __mmask8 __U, __m512d __A)
14663{
14664 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14665 (__v8sf) __W,
14666 (__mmask8) __U,
14668}
14669
14670extern __inline __m256
14671__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14672_mm512_maskz_cvtpd_ps (__mmask8 __U, __m512d __A)
14673{
14674 return (__m256) __builtin_ia32_cvtpd2ps512_mask ((__v8df) __A,
14675 (__v8sf)
14676 _mm256_setzero_ps (),
14677 (__mmask8) __U,
14679}
14680
14681#ifdef __OPTIMIZE__
14682extern __inline __m512
14683__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14684_mm512_getexp_ps (__m512 __A)
14685{
14686 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14687 (__v16sf)
14688 _mm512_undefined_ps (),
14689 (__mmask16) -1,
14691}
14692
14693extern __inline __m512
14694__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14695_mm512_mask_getexp_ps (__m512 __W, __mmask16 __U, __m512 __A)
14696{
14697 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14698 (__v16sf) __W,
14699 (__mmask16) __U,
14701}
14702
14703extern __inline __m512
14704__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14706{
14707 return (__m512) __builtin_ia32_getexpps512_mask ((__v16sf) __A,
14708 (__v16sf)
14709 _mm512_setzero_ps (),
14710 (__mmask16) __U,
14712}
14713
14714extern __inline __m512d
14715__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14716_mm512_getexp_pd (__m512d __A)
14717{
14718 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14719 (__v8df)
14720 _mm512_undefined_pd (),
14721 (__mmask8) -1,
14723}
14724
14725extern __inline __m512d
14726__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14727_mm512_mask_getexp_pd (__m512d __W, __mmask8 __U, __m512d __A)
14728{
14729 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14730 (__v8df) __W,
14731 (__mmask8) __U,
14733}
14734
14735extern __inline __m512d
14736__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14738{
14739 return (__m512d) __builtin_ia32_getexppd512_mask ((__v8df) __A,
14740 (__v8df)
14741 _mm512_setzero_pd (),
14742 (__mmask8) __U,
14744}
14745
14746extern __inline __m128
14747__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14748_mm_getexp_ss (__m128 __A, __m128 __B)
14749{
14750 return (__m128) __builtin_ia32_getexpss128_round ((__v4sf) __A,
14751 (__v4sf) __B,
14753}
14754
14755extern __inline __m128
14756__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14757_mm_mask_getexp_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B)
14758{
14759 return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14760 (__v4sf) __B,
14761 (__v4sf) __W,
14762 (__mmask8) __U,
14764}
14765
14766extern __inline __m128
14767__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14768_mm_maskz_getexp_ss (__mmask8 __U, __m128 __A, __m128 __B)
14769{
14770 return (__m128) __builtin_ia32_getexpss_mask_round ((__v4sf) __A,
14771 (__v4sf) __B,
14772 (__v4sf)
14773 _mm_setzero_ps (),
14774 (__mmask8) __U,
14776}
14777
14778extern __inline __m128d
14779__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14780_mm_getexp_sd (__m128d __A, __m128d __B)
14781{
14782 return (__m128d) __builtin_ia32_getexpsd128_round ((__v2df) __A,
14783 (__v2df) __B,
14785}
14786
14787extern __inline __m128d
14788__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14789_mm_mask_getexp_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B)
14790{
14791 return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14792 (__v2df) __B,
14793 (__v2df) __W,
14794 (__mmask8) __U,
14796}
14797
14798extern __inline __m128d
14799__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14800_mm_maskz_getexp_sd (__mmask8 __U, __m128d __A, __m128d __B)
14801{
14802 return (__m128d) __builtin_ia32_getexpsd_mask_round ((__v2df) __A,
14803 (__v2df) __B,
14804 (__v2df)
14805 _mm_setzero_pd (),
14806 (__mmask8) __U,
14808}
14809
14810extern __inline __m512d
14811__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14814{
14815 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14816 (__C << 2) | __B,
14817 _mm512_undefined_pd (),
14818 (__mmask8) -1,
14820}
14821
14822extern __inline __m512d
14823__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14824_mm512_mask_getmant_pd (__m512d __W, __mmask8 __U, __m512d __A,
14826{
14827 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14828 (__C << 2) | __B,
14829 (__v8df) __W, __U,
14831}
14832
14833extern __inline __m512d
14834__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14837{
14838 return (__m512d) __builtin_ia32_getmantpd512_mask ((__v8df) __A,
14839 (__C << 2) | __B,
14840 (__v8df)
14841 _mm512_setzero_pd (),
14842 __U,
14844}
14845
14846extern __inline __m512
14847__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14850{
14851 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14852 (__C << 2) | __B,
14853 _mm512_undefined_ps (),
14854 (__mmask16) -1,
14856}
14857
14858extern __inline __m512
14859__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14860_mm512_mask_getmant_ps (__m512 __W, __mmask16 __U, __m512 __A,
14862{
14863 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14864 (__C << 2) | __B,
14865 (__v16sf) __W, __U,
14867}
14868
14869extern __inline __m512
14870__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14873{
14874 return (__m512) __builtin_ia32_getmantps512_mask ((__v16sf) __A,
14875 (__C << 2) | __B,
14876 (__v16sf)
14877 _mm512_setzero_ps (),
14878 __U,
14880}
14881
14882extern __inline __m128d
14883__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14886{
14887 return (__m128d) __builtin_ia32_getmantsd_round ((__v2df) __A,
14888 (__v2df) __B,
14889 (__D << 2) | __C,
14891}
14892
14893extern __inline __m128d
14894__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14895_mm_mask_getmant_sd (__m128d __W, __mmask8 __U, __m128d __A, __m128d __B,
14897{
14898 return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14899 (__v2df) __B,
14900 (__D << 2) | __C,
14901 (__v2df) __W,
14902 __U,
14904}
14905
14906extern __inline __m128d
14907__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14908_mm_maskz_getmant_sd (__mmask8 __U, __m128d __A, __m128d __B,
14910{
14911 return (__m128d) __builtin_ia32_getmantsd_mask_round ((__v2df) __A,
14912 (__v2df) __B,
14913 (__D << 2) | __C,
14914 (__v2df)
14915 _mm_setzero_pd(),
14916 __U,
14918}
14919
14920extern __inline __m128
14921__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14924{
14925 return (__m128) __builtin_ia32_getmantss_round ((__v4sf) __A,
14926 (__v4sf) __B,
14927 (__D << 2) | __C,
14929}
14930
14931extern __inline __m128
14932__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14933_mm_mask_getmant_ss (__m128 __W, __mmask8 __U, __m128 __A, __m128 __B,
14935{
14936 return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14937 (__v4sf) __B,
14938 (__D << 2) | __C,
14939 (__v4sf) __W,
14940 __U,
14942}
14943
14944extern __inline __m128
14945__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
14946_mm_maskz_getmant_ss (__mmask8 __U, __m128 __A, __m128 __B,
14948{
14949 return (__m128) __builtin_ia32_getmantss_mask_round ((__v4sf) __A,
14950 (__v4sf) __B,
14951 (__D << 2) | __C,
14952 (__v4sf)
14953 _mm_setzero_ps(),
14954 __U,
14956}
14957
14958#else
14959#define _mm512_getmant_pd(X, B, C) \
14960 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
14961 (int)(((C)<<2) | (B)), \
14962 (__v8df)_mm512_undefined_pd(), \
14963 (__mmask8)-1,\
14964 _MM_FROUND_CUR_DIRECTION))
14965
14966#define _mm512_mask_getmant_pd(W, U, X, B, C) \
14967 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
14968 (int)(((C)<<2) | (B)), \
14969 (__v8df)(__m512d)(W), \
14970 (__mmask8)(U),\
14971 _MM_FROUND_CUR_DIRECTION))
14972
14973#define _mm512_maskz_getmant_pd(U, X, B, C) \
14974 ((__m512d)__builtin_ia32_getmantpd512_mask ((__v8df)(__m512d)(X), \
14975 (int)(((C)<<2) | (B)), \
14976 (__v8df)_mm512_setzero_pd(), \
14977 (__mmask8)(U),\
14978 _MM_FROUND_CUR_DIRECTION))
14979#define _mm512_getmant_ps(X, B, C) \
14980 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
14981 (int)(((C)<<2) | (B)), \
14982 (__v16sf)_mm512_undefined_ps(), \
14983 (__mmask16)-1,\
14984 _MM_FROUND_CUR_DIRECTION))
14985
14986#define _mm512_mask_getmant_ps(W, U, X, B, C) \
14987 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
14988 (int)(((C)<<2) | (B)), \
14989 (__v16sf)(__m512)(W), \
14990 (__mmask16)(U),\
14991 _MM_FROUND_CUR_DIRECTION))
14992
14993#define _mm512_maskz_getmant_ps(U, X, B, C) \
14994 ((__m512)__builtin_ia32_getmantps512_mask ((__v16sf)(__m512)(X), \
14995 (int)(((C)<<2) | (B)), \
14996 (__v16sf)_mm512_setzero_ps(), \
14997 (__mmask16)(U),\
14998 _MM_FROUND_CUR_DIRECTION))
14999#define _mm_getmant_sd(X, Y, C, D) \
15000 ((__m128d)__builtin_ia32_getmantsd_round ((__v2df)(__m128d)(X), \
15001 (__v2df)(__m128d)(Y), \
15002 (int)(((D)<<2) | (C)), \
15003 _MM_FROUND_CUR_DIRECTION))
15004
15005#define _mm_mask_getmant_sd(W, U, X, Y, C, D) \
15006 ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X), \
15007 (__v2df)(__m128d)(Y), \
15008 (int)(((D)<<2) | (C)), \
15009 (__v2df)(__m128d)(W), \
15010 (__mmask8)(U),\
15011 _MM_FROUND_CUR_DIRECTION))
15012
15013#define _mm_maskz_getmant_sd(U, X, Y, C, D) \
15014 ((__m128d)__builtin_ia32_getmantsd_mask_round ((__v2df)(__m128d)(X), \
15015 (__v2df)(__m128d)(Y), \
15016 (int)(((D)<<2) | (C)), \
15017 (__v2df)_mm_setzero_pd(), \
15018 (__mmask8)(U),\
15019 _MM_FROUND_CUR_DIRECTION))
15020
15021#define _mm_getmant_ss(X, Y, C, D) \
15022 ((__m128)__builtin_ia32_getmantss_round ((__v4sf)(__m128)(X), \
15023 (__v4sf)(__m128)(Y), \
15024 (int)(((D)<<2) | (C)), \
15025 _MM_FROUND_CUR_DIRECTION))
15026
15027#define _mm_mask_getmant_ss(W, U, X, Y, C, D) \
15028 ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X), \
15029 (__v4sf)(__m128)(Y), \
15030 (int)(((D)<<2) | (C)), \
15031 (__v4sf)(__m128)(W), \
15032 (__mmask8)(U),\
15033 _MM_FROUND_CUR_DIRECTION))
15034
15035#define _mm_maskz_getmant_ss(U, X, Y, C, D) \
15036 ((__m128)__builtin_ia32_getmantss_mask_round ((__v4sf)(__m128)(X), \
15037 (__v4sf)(__m128)(Y), \
15038 (int)(((D)<<2) | (C)), \
15039 (__v4sf)_mm_setzero_ps(), \
15040 (__mmask8)(U),\
15041 _MM_FROUND_CUR_DIRECTION))
15042
15043#define _mm_getexp_ss(A, B) \
15044 ((__m128)__builtin_ia32_getexpss128_round((__v4sf)(__m128)(A), (__v4sf)(__m128)(B), \
15045 _MM_FROUND_CUR_DIRECTION))
15046
15047#define _mm_mask_getexp_ss(W, U, A, B) \
15048 (__m128)__builtin_ia32_getexpss_mask_round(A, B, W, U,\
15049 _MM_FROUND_CUR_DIRECTION)
15050
15051#define _mm_maskz_getexp_ss(U, A, B) \
15052 (__m128)__builtin_ia32_getexpss_mask_round(A, B, (__v4sf)_mm_setzero_ps(), U,\
15053 _MM_FROUND_CUR_DIRECTION)
15054
15055#define _mm_getexp_sd(A, B) \
15056 ((__m128d)__builtin_ia32_getexpsd128_round((__v2df)(__m128d)(A), (__v2df)(__m128d)(B),\
15057 _MM_FROUND_CUR_DIRECTION))
15058
15059#define _mm_mask_getexp_sd(W, U, A, B) \
15060 (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, W, U,\
15061 _MM_FROUND_CUR_DIRECTION)
15062
15063#define _mm_maskz_getexp_sd(U, A, B) \
15064 (__m128d)__builtin_ia32_getexpsd_mask_round(A, B, (__v2df)_mm_setzero_pd(), U,\
15065 _MM_FROUND_CUR_DIRECTION)
15066
15067#define _mm512_getexp_ps(A) \
15068 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
15069 (__v16sf)_mm512_undefined_ps(), (__mmask16)-1, _MM_FROUND_CUR_DIRECTION))
15070
15071#define _mm512_mask_getexp_ps(W, U, A) \
15072 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
15073 (__v16sf)(__m512)(W), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
15074
15075#define _mm512_maskz_getexp_ps(U, A) \
15076 ((__m512)__builtin_ia32_getexpps512_mask((__v16sf)(__m512)(A), \
15077 (__v16sf)_mm512_setzero_ps(), (__mmask16)(U), _MM_FROUND_CUR_DIRECTION))
15078
15079#define _mm512_getexp_pd(A) \
15080 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
15081 (__v8df)_mm512_undefined_pd(), (__mmask8)-1, _MM_FROUND_CUR_DIRECTION))
15082
15083#define _mm512_mask_getexp_pd(W, U, A) \
15084 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
15085 (__v8df)(__m512d)(W), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
15086
15087#define _mm512_maskz_getexp_pd(U, A) \
15088 ((__m512d)__builtin_ia32_getexppd512_mask((__v8df)(__m512d)(A), \
15089 (__v8df)_mm512_setzero_pd(), (__mmask8)(U), _MM_FROUND_CUR_DIRECTION))
15090#endif
15091
15092#ifdef __OPTIMIZE__
15093extern __inline __m512
15094__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15095_mm512_roundscale_ps (__m512 __A, const int __imm)
15096{
15097 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __A, __imm,
15098 (__v16sf)
15099 _mm512_undefined_ps (),
15100 -1,
15102}
15103
15104extern __inline __m512
15105__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15107 const int __imm)
15108{
15109 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __C, __imm,
15110 (__v16sf) __A,
15111 (__mmask16) __B,
15113}
15114
15115extern __inline __m512
15116__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15117_mm512_maskz_roundscale_ps (__mmask16 __A, __m512 __B, const int __imm)
15118{
15119 return (__m512) __builtin_ia32_rndscaleps_mask ((__v16sf) __B,
15120 __imm,
15121 (__v16sf)
15122 _mm512_setzero_ps (),
15123 (__mmask16) __A,
15125}
15126
15127extern __inline __m512d
15128__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15129_mm512_roundscale_pd (__m512d __A, const int __imm)
15130{
15131 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __A, __imm,
15132 (__v8df)
15133 _mm512_undefined_pd (),
15134 -1,
15136}
15137
15138extern __inline __m512d
15139__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15140_mm512_mask_roundscale_pd (__m512d __A, __mmask8 __B, __m512d __C,
15141 const int __imm)
15142{
15143 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __C, __imm,
15144 (__v8df) __A,
15145 (__mmask8) __B,
15147}
15148
15149extern __inline __m512d
15150__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15151_mm512_maskz_roundscale_pd (__mmask8 __A, __m512d __B, const int __imm)
15152{
15153 return (__m512d) __builtin_ia32_rndscalepd_mask ((__v8df) __B,
15154 __imm,
15155 (__v8df)
15156 _mm512_setzero_pd (),
15157 (__mmask8) __A,
15159}
15160
15161extern __inline __m128
15162__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15163_mm_roundscale_ss (__m128 __A, __m128 __B, const int __imm)
15164{
15165 return (__m128)
15166 __builtin_ia32_rndscaless_mask_round ((__v4sf) __A,
15167 (__v4sf) __B, __imm,
15168 (__v4sf)
15169 _mm_setzero_ps (),
15170 (__mmask8) -1,
15172}
15173
15174
15175extern __inline __m128
15176__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15177_mm_mask_roundscale_ss (__m128 __A, __mmask8 __B, __m128 __C, __m128 __D,
15178 const int __imm)
15179{
15180 return (__m128)
15181 __builtin_ia32_rndscaless_mask_round ((__v4sf) __C,
15182 (__v4sf) __D, __imm,
15183 (__v4sf) __A,
15184 (__mmask8) __B,
15186}
15187
15188extern __inline __m128
15189__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15190_mm_maskz_roundscale_ss (__mmask8 __A, __m128 __B, __m128 __C,
15191 const int __imm)
15192{
15193 return (__m128)
15194 __builtin_ia32_rndscaless_mask_round ((__v4sf) __B,
15195 (__v4sf) __C, __imm,
15196 (__v4sf)
15197 _mm_setzero_ps (),
15198 (__mmask8) __A,
15200}
15201
15202extern __inline __m128d
15203__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15204_mm_roundscale_sd (__m128d __A, __m128d __B, const int __imm)
15205{
15206 return (__m128d)
15207 __builtin_ia32_rndscalesd_mask_round ((__v2df) __A,
15208 (__v2df) __B, __imm,
15209 (__v2df)
15210 _mm_setzero_pd (),
15211 (__mmask8) -1,
15213}
15214
15215extern __inline __m128d
15216__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15217_mm_mask_roundscale_sd (__m128d __A, __mmask8 __B, __m128d __C, __m128d __D,
15218 const int __imm)
15219{
15220 return (__m128d)
15221 __builtin_ia32_rndscalesd_mask_round ((__v2df) __C,
15222 (__v2df) __D, __imm,
15223 (__v2df) __A,
15224 (__mmask8) __B,
15226}
15227
15228extern __inline __m128d
15229__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15230_mm_maskz_roundscale_sd (__mmask8 __A, __m128d __B, __m128d __C,
15231 const int __imm)
15232{
15233 return (__m128d)
15234 __builtin_ia32_rndscalesd_mask_round ((__v2df) __B,
15235 (__v2df) __C, __imm,
15236 (__v2df)
15237 _mm_setzero_pd (),
15238 (__mmask8) __A,
15240}
15241
15242#else
15243#define _mm512_roundscale_ps(A, B) \
15244 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(A), (int)(B),\
15245 (__v16sf)_mm512_undefined_ps(), (__mmask16)(-1), _MM_FROUND_CUR_DIRECTION))
15246#define _mm512_mask_roundscale_ps(A, B, C, D) \
15247 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(C), \
15248 (int)(D), \
15249 (__v16sf)(__m512)(A), \
15250 (__mmask16)(B), _MM_FROUND_CUR_DIRECTION))
15251#define _mm512_maskz_roundscale_ps(A, B, C) \
15252 ((__m512) __builtin_ia32_rndscaleps_mask ((__v16sf)(__m512)(B), \
15253 (int)(C), \
15254 (__v16sf)_mm512_setzero_ps(),\
15255 (__mmask16)(A), _MM_FROUND_CUR_DIRECTION))
15256#define _mm512_roundscale_pd(A, B) \
15257 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(A), (int)(B),\
15258 (__v8df)_mm512_undefined_pd(), (__mmask8)(-1), _MM_FROUND_CUR_DIRECTION))
15259#define _mm512_mask_roundscale_pd(A, B, C, D) \
15260 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(C), \
15261 (int)(D), \
15262 (__v8df)(__m512d)(A), \
15263 (__mmask8)(B), _MM_FROUND_CUR_DIRECTION))
15264#define _mm512_maskz_roundscale_pd(A, B, C) \
15265 ((__m512d) __builtin_ia32_rndscalepd_mask ((__v8df)(__m512d)(B), \
15266 (int)(C), \
15267 (__v8df)_mm512_setzero_pd(),\
15268 (__mmask8)(A), _MM_FROUND_CUR_DIRECTION))
15269#define _mm_roundscale_ss(A, B, I) \
15270 ((__m128) \
15271 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A), \
15272 (__v4sf) (__m128) (B), \
15273 (int) (I), \
15274 (__v4sf) _mm_setzero_ps (), \
15275 (__mmask8) (-1), \
15276 _MM_FROUND_CUR_DIRECTION))
15277#define _mm_mask_roundscale_ss(A, U, B, C, I) \
15278 ((__m128) \
15279 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (B), \
15280 (__v4sf) (__m128) (C), \
15281 (int) (I), \
15282 (__v4sf) (__m128) (A), \
15283 (__mmask8) (U), \
15284 _MM_FROUND_CUR_DIRECTION))
15285#define _mm_maskz_roundscale_ss(U, A, B, I) \
15286 ((__m128) \
15287 __builtin_ia32_rndscaless_mask_round ((__v4sf) (__m128) (A), \
15288 (__v4sf) (__m128) (B), \
15289 (int) (I), \
15290 (__v4sf) _mm_setzero_ps (), \
15291 (__mmask8) (U), \
15292 _MM_FROUND_CUR_DIRECTION))
15293#define _mm_roundscale_sd(A, B, I) \
15294 ((__m128d) \
15295 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A), \
15296 (__v2df) (__m128d) (B), \
15297 (int) (I), \
15298 (__v2df) _mm_setzero_pd (), \
15299 (__mmask8) (-1), \
15300 _MM_FROUND_CUR_DIRECTION))
15301#define _mm_mask_roundscale_sd(A, U, B, C, I) \
15302 ((__m128d) \
15303 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (B), \
15304 (__v2df) (__m128d) (C), \
15305 (int) (I), \
15306 (__v2df) (__m128d) (A), \
15307 (__mmask8) (U), \
15308 _MM_FROUND_CUR_DIRECTION))
15309#define _mm_maskz_roundscale_sd(U, A, B, I) \
15310 ((__m128d) \
15311 __builtin_ia32_rndscalesd_mask_round ((__v2df) (__m128d) (A), \
15312 (__v2df) (__m128d) (B), \
15313 (int) (I), \
15314 (__v2df) _mm_setzero_pd (), \
15315 (__mmask8) (U), \
15316 _MM_FROUND_CUR_DIRECTION))
15317#endif
15318
15319#ifdef __OPTIMIZE__
15320extern __inline __mmask8
15321__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15322_mm512_cmp_pd_mask (__m512d __X, __m512d __Y, const int __P)
15323{
15324 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15325 (__v8df) __Y, __P,
15326 (__mmask8) -1,
15328}
15329
15330extern __inline __mmask16
15331__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15332_mm512_cmp_ps_mask (__m512 __X, __m512 __Y, const int __P)
15333{
15334 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15335 (__v16sf) __Y, __P,
15336 (__mmask16) -1,
15338}
15339
15340extern __inline __mmask16
15341__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15342_mm512_mask_cmp_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y, const int __P)
15343{
15344 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15345 (__v16sf) __Y, __P,
15346 (__mmask16) __U,
15348}
15349
15350extern __inline __mmask8
15351__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15352_mm512_mask_cmp_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y, const int __P)
15353{
15354 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15355 (__v8df) __Y, __P,
15356 (__mmask8) __U,
15358}
15359
15360extern __inline __mmask8
15361__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15362_mm_cmp_sd_mask (__m128d __X, __m128d __Y, const int __P)
15363{
15364 return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15365 (__v2df) __Y, __P,
15366 (__mmask8) -1,
15368}
15369
15370extern __inline __mmask8
15371__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15372_mm_mask_cmp_sd_mask (__mmask8 __M, __m128d __X, __m128d __Y, const int __P)
15373{
15374 return (__mmask8) __builtin_ia32_cmpsd_mask ((__v2df) __X,
15375 (__v2df) __Y, __P,
15376 (__mmask8) __M,
15378}
15379
15380extern __inline __mmask8
15381__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15382_mm_cmp_ss_mask (__m128 __X, __m128 __Y, const int __P)
15383{
15384 return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15385 (__v4sf) __Y, __P,
15386 (__mmask8) -1,
15388}
15389
15390extern __inline __mmask8
15391__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15392_mm_mask_cmp_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y, const int __P)
15393{
15394 return (__mmask8) __builtin_ia32_cmpss_mask ((__v4sf) __X,
15395 (__v4sf) __Y, __P,
15396 (__mmask8) __M,
15398}
15399
15400#else
15401#define _mm512_cmp_pd_mask(X, Y, P) \
15402 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
15403 (__v8df)(__m512d)(Y), (int)(P),\
15404 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15405
15406#define _mm512_cmp_ps_mask(X, Y, P) \
15407 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
15408 (__v16sf)(__m512)(Y), (int)(P),\
15409 (__mmask16)-1,_MM_FROUND_CUR_DIRECTION))
15410
15411#define _mm512_mask_cmp_pd_mask(M, X, Y, P) \
15412 ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X), \
15413 (__v8df)(__m512d)(Y), (int)(P),\
15414 (__mmask8)(M), _MM_FROUND_CUR_DIRECTION))
15415
15416#define _mm512_mask_cmp_ps_mask(M, X, Y, P) \
15417 ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X), \
15418 (__v16sf)(__m512)(Y), (int)(P),\
15419 (__mmask16)(M),_MM_FROUND_CUR_DIRECTION))
15420
15421#define _mm_cmp_sd_mask(X, Y, P) \
15422 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
15423 (__v2df)(__m128d)(Y), (int)(P),\
15424 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15425
15426#define _mm_mask_cmp_sd_mask(M, X, Y, P) \
15427 ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X), \
15428 (__v2df)(__m128d)(Y), (int)(P),\
15429 M,_MM_FROUND_CUR_DIRECTION))
15430
15431#define _mm_cmp_ss_mask(X, Y, P) \
15432 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
15433 (__v4sf)(__m128)(Y), (int)(P), \
15434 (__mmask8)-1,_MM_FROUND_CUR_DIRECTION))
15435
15436#define _mm_mask_cmp_ss_mask(M, X, Y, P) \
15437 ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X), \
15438 (__v4sf)(__m128)(Y), (int)(P), \
15439 M,_MM_FROUND_CUR_DIRECTION))
15440#endif
15441
15442extern __inline __mmask8
15443__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15444_mm512_cmpeq_pd_mask (__m512d __X, __m512d __Y)
15445{
15446 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15447 (__v8df) __Y, _CMP_EQ_OQ,
15448 (__mmask8) -1,
15450}
15451
15452extern __inline __mmask8
15453__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15454_mm512_mask_cmpeq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15455{
15456 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15457 (__v8df) __Y, _CMP_EQ_OQ,
15458 (__mmask8) __U,
15460}
15461
15462extern __inline __mmask8
15463__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15464_mm512_cmplt_pd_mask (__m512d __X, __m512d __Y)
15465{
15466 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15467 (__v8df) __Y, _CMP_LT_OS,
15468 (__mmask8) -1,
15470}
15471
15472extern __inline __mmask8
15473__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15474_mm512_mask_cmplt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15475{
15476 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15477 (__v8df) __Y, _CMP_LT_OS,
15478 (__mmask8) __U,
15480}
15481
15482extern __inline __mmask8
15483__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15484_mm512_cmple_pd_mask (__m512d __X, __m512d __Y)
15485{
15486 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15487 (__v8df) __Y, _CMP_LE_OS,
15488 (__mmask8) -1,
15490}
15491
15492extern __inline __mmask8
15493__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15494_mm512_mask_cmple_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15495{
15496 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15497 (__v8df) __Y, _CMP_LE_OS,
15498 (__mmask8) __U,
15500}
15501
15502extern __inline __mmask8
15503__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15504_mm512_cmpunord_pd_mask (__m512d __X, __m512d __Y)
15505{
15506 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15507 (__v8df) __Y, _CMP_UNORD_Q,
15508 (__mmask8) -1,
15510}
15511
15512extern __inline __mmask8
15513__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15514_mm512_mask_cmpunord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15515{
15516 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15517 (__v8df) __Y, _CMP_UNORD_Q,
15518 (__mmask8) __U,
15520}
15521
15522extern __inline __mmask8
15523__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15524_mm512_cmpneq_pd_mask (__m512d __X, __m512d __Y)
15525{
15526 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15527 (__v8df) __Y, _CMP_NEQ_UQ,
15528 (__mmask8) -1,
15530}
15531
15532extern __inline __mmask8
15533__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15534_mm512_mask_cmpneq_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15535{
15536 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15537 (__v8df) __Y, _CMP_NEQ_UQ,
15538 (__mmask8) __U,
15540}
15541
15542extern __inline __mmask8
15543__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15544_mm512_cmpnlt_pd_mask (__m512d __X, __m512d __Y)
15545{
15546 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15547 (__v8df) __Y, _CMP_NLT_US,
15548 (__mmask8) -1,
15550}
15551
15552extern __inline __mmask8
15553__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15554_mm512_mask_cmpnlt_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15555{
15556 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15557 (__v8df) __Y, _CMP_NLT_US,
15558 (__mmask8) __U,
15560}
15561
15562extern __inline __mmask8
15563__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15564_mm512_cmpnle_pd_mask (__m512d __X, __m512d __Y)
15565{
15566 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15567 (__v8df) __Y, _CMP_NLE_US,
15568 (__mmask8) -1,
15570}
15571
15572extern __inline __mmask8
15573__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15574_mm512_mask_cmpnle_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15575{
15576 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15577 (__v8df) __Y, _CMP_NLE_US,
15578 (__mmask8) __U,
15580}
15581
15582extern __inline __mmask8
15583__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15584_mm512_cmpord_pd_mask (__m512d __X, __m512d __Y)
15585{
15586 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15587 (__v8df) __Y, _CMP_ORD_Q,
15588 (__mmask8) -1,
15590}
15591
15592extern __inline __mmask8
15593__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15594_mm512_mask_cmpord_pd_mask (__mmask8 __U, __m512d __X, __m512d __Y)
15595{
15596 return (__mmask8) __builtin_ia32_cmppd512_mask ((__v8df) __X,
15597 (__v8df) __Y, _CMP_ORD_Q,
15598 (__mmask8) __U,
15600}
15601
15602extern __inline __mmask16
15603__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15604_mm512_cmpeq_ps_mask (__m512 __X, __m512 __Y)
15605{
15606 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15607 (__v16sf) __Y, _CMP_EQ_OQ,
15608 (__mmask16) -1,
15610}
15611
15612extern __inline __mmask16
15613__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15614_mm512_mask_cmpeq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15615{
15616 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15617 (__v16sf) __Y, _CMP_EQ_OQ,
15618 (__mmask16) __U,
15620}
15621
15622extern __inline __mmask16
15623__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15624_mm512_cmplt_ps_mask (__m512 __X, __m512 __Y)
15625{
15626 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15627 (__v16sf) __Y, _CMP_LT_OS,
15628 (__mmask16) -1,
15630}
15631
15632extern __inline __mmask16
15633__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15634_mm512_mask_cmplt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15635{
15636 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15637 (__v16sf) __Y, _CMP_LT_OS,
15638 (__mmask16) __U,
15640}
15641
15642extern __inline __mmask16
15643__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15644_mm512_cmple_ps_mask (__m512 __X, __m512 __Y)
15645{
15646 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15647 (__v16sf) __Y, _CMP_LE_OS,
15648 (__mmask16) -1,
15650}
15651
15652extern __inline __mmask16
15653__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15654_mm512_mask_cmple_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15655{
15656 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15657 (__v16sf) __Y, _CMP_LE_OS,
15658 (__mmask16) __U,
15660}
15661
15662extern __inline __mmask16
15663__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15664_mm512_cmpunord_ps_mask (__m512 __X, __m512 __Y)
15665{
15666 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15667 (__v16sf) __Y, _CMP_UNORD_Q,
15668 (__mmask16) -1,
15670}
15671
15672extern __inline __mmask16
15673__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15674_mm512_mask_cmpunord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15675{
15676 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15677 (__v16sf) __Y, _CMP_UNORD_Q,
15678 (__mmask16) __U,
15680}
15681
15682extern __inline __mmask16
15683__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15684_mm512_cmpneq_ps_mask (__m512 __X, __m512 __Y)
15685{
15686 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15687 (__v16sf) __Y, _CMP_NEQ_UQ,
15688 (__mmask16) -1,
15690}
15691
15692extern __inline __mmask16
15693__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15694_mm512_mask_cmpneq_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15695{
15696 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15697 (__v16sf) __Y, _CMP_NEQ_UQ,
15698 (__mmask16) __U,
15700}
15701
15702extern __inline __mmask16
15703__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15704_mm512_cmpnlt_ps_mask (__m512 __X, __m512 __Y)
15705{
15706 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15707 (__v16sf) __Y, _CMP_NLT_US,
15708 (__mmask16) -1,
15710}
15711
15712extern __inline __mmask16
15713__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15714_mm512_mask_cmpnlt_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15715{
15716 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15717 (__v16sf) __Y, _CMP_NLT_US,
15718 (__mmask16) __U,
15720}
15721
15722extern __inline __mmask16
15723__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15724_mm512_cmpnle_ps_mask (__m512 __X, __m512 __Y)
15725{
15726 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15727 (__v16sf) __Y, _CMP_NLE_US,
15728 (__mmask16) -1,
15730}
15731
15732extern __inline __mmask16
15733__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15734_mm512_mask_cmpnle_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15735{
15736 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15737 (__v16sf) __Y, _CMP_NLE_US,
15738 (__mmask16) __U,
15740}
15741
15742extern __inline __mmask16
15743__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15744_mm512_cmpord_ps_mask (__m512 __X, __m512 __Y)
15745{
15746 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15747 (__v16sf) __Y, _CMP_ORD_Q,
15748 (__mmask16) -1,
15750}
15751
15752extern __inline __mmask16
15753__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15754_mm512_mask_cmpord_ps_mask (__mmask16 __U, __m512 __X, __m512 __Y)
15755{
15756 return (__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf) __X,
15757 (__v16sf) __Y, _CMP_ORD_Q,
15758 (__mmask16) __U,
15760}
15761
15762extern __inline __mmask16
15763__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15764_mm512_kmov (__mmask16 __A)
15765{
15766 return __builtin_ia32_kmovw (__A);
15767}
15768
15769extern __inline __m512
15770__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15771_mm512_castpd_ps (__m512d __A)
15772{
15773 return (__m512) (__A);
15774}
15775
15776extern __inline __m512i
15777__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15778_mm512_castpd_si512 (__m512d __A)
15779{
15780 return (__m512i) (__A);
15781}
15782
15783extern __inline __m512d
15784__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15785_mm512_castps_pd (__m512 __A)
15786{
15787 return (__m512d) (__A);
15788}
15789
15790extern __inline __m512i
15791__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15792_mm512_castps_si512 (__m512 __A)
15793{
15794 return (__m512i) (__A);
15795}
15796
15797extern __inline __m512
15798__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15799_mm512_castsi512_ps (__m512i __A)
15800{
15801 return (__m512) (__A);
15802}
15803
15804extern __inline __m512d
15805__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15806_mm512_castsi512_pd (__m512i __A)
15807{
15808 return (__m512d) (__A);
15809}
15810
15811extern __inline __m128d
15812__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15813_mm512_castpd512_pd128 (__m512d __A)
15814{
15815 return (__m128d)_mm512_extractf32x4_ps((__m512)__A, 0);
15816}
15817
15818extern __inline __m128
15819__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15820_mm512_castps512_ps128 (__m512 __A)
15821{
15822 return _mm512_extractf32x4_ps(__A, 0);
15823}
15824
15825extern __inline __m128i
15826__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15827_mm512_castsi512_si128 (__m512i __A)
15828{
15829 return (__m128i)_mm512_extracti32x4_epi32((__m512i)__A, 0);
15830}
15831
15832extern __inline __m256d
15833__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15834_mm512_castpd512_pd256 (__m512d __A)
15835{
15836 return _mm512_extractf64x4_pd(__A, 0);
15837}
15838
15839extern __inline __m256
15840__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15841_mm512_castps512_ps256 (__m512 __A)
15842{
15843 return (__m256)_mm512_extractf64x4_pd((__m512d)__A, 0);
15844}
15845
15846extern __inline __m256i
15847__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15848_mm512_castsi512_si256 (__m512i __A)
15849{
15850 return (__m256i)_mm512_extractf64x4_pd((__m512d)__A, 0);
15851}
15852
15853extern __inline __m512d
15854__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15855_mm512_castpd128_pd512 (__m128d __A)
15856{
15857 return (__m512d) __builtin_ia32_pd512_pd((__m128d)__A);
15858}
15859
15860extern __inline __m512
15861__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15862_mm512_castps128_ps512 (__m128 __A)
15863{
15864 return (__m512) __builtin_ia32_ps512_ps((__m128)__A);
15865}
15866
15867extern __inline __m512i
15868__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15869_mm512_castsi128_si512 (__m128i __A)
15870{
15871 return (__m512i) __builtin_ia32_si512_si((__v4si)__A);
15872}
15873
15874extern __inline __m512d
15875__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15876_mm512_castpd256_pd512 (__m256d __A)
15877{
15878 return __builtin_ia32_pd512_256pd (__A);
15879}
15880
15881extern __inline __m512
15882__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15883_mm512_castps256_ps512 (__m256 __A)
15884{
15885 return __builtin_ia32_ps512_256ps (__A);
15886}
15887
15888extern __inline __m512i
15889__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15890_mm512_castsi256_si512 (__m256i __A)
15891{
15892 return (__m512i)__builtin_ia32_si512_256si ((__v8si)__A);
15893}
15894
15895extern __inline __m512d
15896__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15897_mm512_zextpd128_pd512 (__m128d __A)
15898{
15899 return (__m512d) _mm512_insertf32x4 (_mm512_setzero_ps (), (__m128) __A, 0);
15900}
15901
15902extern __inline __m512
15903__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15904_mm512_zextps128_ps512 (__m128 __A)
15905{
15906 return _mm512_insertf32x4 (_mm512_setzero_ps (), __A, 0);
15907}
15908
15909extern __inline __m512i
15910__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15911_mm512_zextsi128_si512 (__m128i __A)
15912{
15913 return _mm512_inserti32x4 (_mm512_setzero_si512 (), __A, 0);
15914}
15915
15916extern __inline __m512d
15917__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15918_mm512_zextpd256_pd512 (__m256d __A)
15919{
15920 return _mm512_insertf64x4 (_mm512_setzero_pd (), __A, 0);
15921}
15922
15923extern __inline __m512
15924__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15925_mm512_zextps256_ps512 (__m256 __A)
15926{
15927 return (__m512) _mm512_insertf64x4 (_mm512_setzero_pd (), (__m256d) __A, 0);
15928}
15929
15930extern __inline __m512i
15931__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15932_mm512_zextsi256_si512 (__m256i __A)
15933{
15934 return _mm512_inserti64x4 (_mm512_setzero_si512 (), __A, 0);
15935}
15936
15937extern __inline __mmask16
15938__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15939_mm512_cmpeq_epu32_mask (__m512i __A, __m512i __B)
15940{
15941 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15942 (__v16si) __B, 0,
15943 (__mmask16) -1);
15944}
15945
15946extern __inline __mmask16
15947__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15948_mm512_mask_cmpeq_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15949{
15950 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15951 (__v16si) __B, 0, __U);
15952}
15953
15954extern __inline __mmask8
15955__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15956_mm512_mask_cmpeq_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15957{
15958 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15959 (__v8di) __B, 0, __U);
15960}
15961
15962extern __inline __mmask8
15963__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15964_mm512_cmpeq_epu64_mask (__m512i __A, __m512i __B)
15965{
15966 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15967 (__v8di) __B, 0,
15968 (__mmask8) -1);
15969}
15970
15971extern __inline __mmask16
15972__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15973_mm512_cmpgt_epu32_mask (__m512i __A, __m512i __B)
15974{
15975 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15976 (__v16si) __B, 6,
15977 (__mmask16) -1);
15978}
15979
15980extern __inline __mmask16
15981__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15982_mm512_mask_cmpgt_epu32_mask (__mmask16 __U, __m512i __A, __m512i __B)
15983{
15984 return (__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si) __A,
15985 (__v16si) __B, 6, __U);
15986}
15987
15988extern __inline __mmask8
15989__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15990_mm512_mask_cmpgt_epu64_mask (__mmask8 __U, __m512i __A, __m512i __B)
15991{
15992 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
15993 (__v8di) __B, 6, __U);
15994}
15995
15996extern __inline __mmask8
15997__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
15998_mm512_cmpgt_epu64_mask (__m512i __A, __m512i __B)
15999{
16000 return (__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di) __A,
16001 (__v8di) __B, 6,
16002 (__mmask8) -1);
16003}
16004
16005#undef __MM512_REDUCE_OP
16006#define __MM512_REDUCE_OP(op) \
16007 __v8si __T1 = (__v8si) _mm512_extracti64x4_epi64 (__A, 1); \
16008 __v8si __T2 = (__v8si) _mm512_extracti64x4_epi64 (__A, 0); \
16009 __m256i __T3 = (__m256i) (__T1 op __T2); \
16010 __v4si __T4 = (__v4si) _mm256_extracti128_si256 (__T3, 1); \
16011 __v4si __T5 = (__v4si) _mm256_extracti128_si256 (__T3, 0); \
16012 __v4si __T6 = __T4 op __T5; \
16013 __v4si __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
16014 __v4si __T8 = __T6 op __T7; \
16015 return __T8[0] op __T8[1]
16016
16017extern __inline int
16018__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16019_mm512_reduce_add_epi32 (__m512i __A)
16020{
16022}
16023
16024extern __inline int
16025__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16026_mm512_reduce_mul_epi32 (__m512i __A)
16027{
16029}
16030
16031extern __inline int
16032__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16033_mm512_reduce_and_epi32 (__m512i __A)
16034{
16036}
16037
16038extern __inline int
16039__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16040_mm512_reduce_or_epi32 (__m512i __A)
16041{
16043}
16044
16045extern __inline int
16046__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16047_mm512_mask_reduce_add_epi32 (__mmask16 __U, __m512i __A)
16048{
16049 __A = _mm512_maskz_mov_epi32 (__U, __A);
16051}
16052
16053extern __inline int
16054__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16055_mm512_mask_reduce_mul_epi32 (__mmask16 __U, __m512i __A)
16056{
16057 __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (1), __U, __A);
16059}
16060
16061extern __inline int
16062__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16063_mm512_mask_reduce_and_epi32 (__mmask16 __U, __m512i __A)
16064{
16065 __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
16067}
16068
16069extern __inline int
16070__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16071_mm512_mask_reduce_or_epi32 (__mmask16 __U, __m512i __A)
16072{
16073 __A = _mm512_maskz_mov_epi32 (__U, __A);
16075}
16076
16077#undef __MM512_REDUCE_OP
16078#define __MM512_REDUCE_OP(op) \
16079 __m256i __T1 = (__m256i) _mm512_extracti64x4_epi64 (__A, 1); \
16080 __m256i __T2 = (__m256i) _mm512_extracti64x4_epi64 (__A, 0); \
16081 __m256i __T3 = _mm256_##op (__T1, __T2); \
16082 __m128i __T4 = (__m128i) _mm256_extracti128_si256 (__T3, 1); \
16083 __m128i __T5 = (__m128i) _mm256_extracti128_si256 (__T3, 0); \
16084 __m128i __T6 = _mm_##op (__T4, __T5); \
16085 __m128i __T7 = (__m128i) __builtin_shuffle ((__v4si) __T6, \
16086 (__v4si) { 2, 3, 0, 1 }); \
16087 __m128i __T8 = _mm_##op (__T6, __T7); \
16088 __m128i __T9 = (__m128i) __builtin_shuffle ((__v4si) __T8, \
16089 (__v4si) { 1, 0, 1, 0 }); \
16090 __v4si __T10 = (__v4si) _mm_##op (__T8, __T9); \
16091 return __T10[0]
16092
16093extern __inline int
16094__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16095_mm512_reduce_min_epi32 (__m512i __A)
16096{
16097 __MM512_REDUCE_OP (min_epi32);
16098}
16099
16100extern __inline int
16101__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16102_mm512_reduce_max_epi32 (__m512i __A)
16103{
16104 __MM512_REDUCE_OP (max_epi32);
16105}
16106
16107extern __inline unsigned int
16108__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16109_mm512_reduce_min_epu32 (__m512i __A)
16110{
16111 __MM512_REDUCE_OP (min_epu32);
16112}
16113
16114extern __inline unsigned int
16115__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16116_mm512_reduce_max_epu32 (__m512i __A)
16117{
16118 __MM512_REDUCE_OP (max_epu32);
16119}
16120
16121extern __inline int
16122__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16123_mm512_mask_reduce_min_epi32 (__mmask16 __U, __m512i __A)
16124{
16125 __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (__INT_MAX__), __U, __A);
16127}
16128
16129extern __inline int
16130__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16131_mm512_mask_reduce_max_epi32 (__mmask16 __U, __m512i __A)
16132{
16133 __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (-__INT_MAX__ - 1), __U, __A);
16135}
16136
16137extern __inline unsigned int
16138__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16139_mm512_mask_reduce_min_epu32 (__mmask16 __U, __m512i __A)
16140{
16141 __A = _mm512_mask_mov_epi32 (_mm512_set1_epi32 (~0), __U, __A);
16143}
16144
16145extern __inline unsigned int
16146__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16147_mm512_mask_reduce_max_epu32 (__mmask16 __U, __m512i __A)
16148{
16149 __A = _mm512_maskz_mov_epi32 (__U, __A);
16151}
16152
16153#undef __MM512_REDUCE_OP
16154#define __MM512_REDUCE_OP(op) \
16155 __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
16156 __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
16157 __m256 __T3 = __T1 op __T2; \
16158 __m128 __T4 = _mm256_extractf128_ps (__T3, 1); \
16159 __m128 __T5 = _mm256_extractf128_ps (__T3, 0); \
16160 __m128 __T6 = __T4 op __T5; \
16161 __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
16162 __m128 __T8 = __T6 op __T7; \
16163 return __T8[0] op __T8[1]
16164
16165extern __inline float
16166__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16167_mm512_reduce_add_ps (__m512 __A)
16168{
16170}
16171
16172extern __inline float
16173__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16174_mm512_reduce_mul_ps (__m512 __A)
16175{
16177}
16178
16179extern __inline float
16180__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16181_mm512_mask_reduce_add_ps (__mmask16 __U, __m512 __A)
16182{
16183 __A = _mm512_maskz_mov_ps (__U, __A);
16185}
16186
16187extern __inline float
16188__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16189_mm512_mask_reduce_mul_ps (__mmask16 __U, __m512 __A)
16190{
16191 __A = _mm512_mask_mov_ps (_mm512_set1_ps (1.0f), __U, __A);
16193}
16194
16195#undef __MM512_REDUCE_OP
16196#define __MM512_REDUCE_OP(op) \
16197 __m256 __T1 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 1); \
16198 __m256 __T2 = (__m256) _mm512_extractf64x4_pd ((__m512d) __A, 0); \
16199 __m256 __T3 = _mm256_##op (__T1, __T2); \
16200 __m128 __T4 = _mm256_extractf128_ps (__T3, 1); \
16201 __m128 __T5 = _mm256_extractf128_ps (__T3, 0); \
16202 __m128 __T6 = _mm_##op (__T4, __T5); \
16203 __m128 __T7 = __builtin_shuffle (__T6, (__v4si) { 2, 3, 0, 1 }); \
16204 __m128 __T8 = _mm_##op (__T6, __T7); \
16205 __m128 __T9 = __builtin_shuffle (__T8, (__v4si) { 1, 0, 1, 0 }); \
16206 __m128 __T10 = _mm_##op (__T8, __T9); \
16207 return __T10[0]
16208
16209extern __inline float
16210__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16211_mm512_reduce_min_ps (__m512 __A)
16212{
16213 __MM512_REDUCE_OP (min_ps);
16214}
16215
16216extern __inline float
16217__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16218_mm512_reduce_max_ps (__m512 __A)
16219{
16220 __MM512_REDUCE_OP (max_ps);
16221}
16222
16223extern __inline float
16224__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16225_mm512_mask_reduce_min_ps (__mmask16 __U, __m512 __A)
16226{
16227 __A = _mm512_mask_mov_ps (_mm512_set1_ps (__builtin_inff ()), __U, __A);
16229}
16230
16231extern __inline float
16232__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16233_mm512_mask_reduce_max_ps (__mmask16 __U, __m512 __A)
16234{
16235 __A = _mm512_mask_mov_ps (_mm512_set1_ps (-__builtin_inff ()), __U, __A);
16237}
16238
16239#undef __MM512_REDUCE_OP
16240#define __MM512_REDUCE_OP(op) \
16241 __v4di __T1 = (__v4di) _mm512_extracti64x4_epi64 (__A, 1); \
16242 __v4di __T2 = (__v4di) _mm512_extracti64x4_epi64 (__A, 0); \
16243 __m256i __T3 = (__m256i) (__T1 op __T2); \
16244 __v2di __T4 = (__v2di) _mm256_extracti128_si256 (__T3, 1); \
16245 __v2di __T5 = (__v2di) _mm256_extracti128_si256 (__T3, 0); \
16246 __v2di __T6 = __T4 op __T5; \
16247 return __T6[0] op __T6[1]
16248
16249extern __inline long long
16250__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16251_mm512_reduce_add_epi64 (__m512i __A)
16252{
16254}
16255
16256extern __inline long long
16257__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16258_mm512_reduce_mul_epi64 (__m512i __A)
16259{
16261}
16262
16263extern __inline long long
16264__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16265_mm512_reduce_and_epi64 (__m512i __A)
16266{
16268}
16269
16270extern __inline long long
16271__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16272_mm512_reduce_or_epi64 (__m512i __A)
16273{
16275}
16276
16277extern __inline long long
16278__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16279_mm512_mask_reduce_add_epi64 (__mmask8 __U, __m512i __A)
16280{
16281 __A = _mm512_maskz_mov_epi64 (__U, __A);
16283}
16284
16285extern __inline long long
16286__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16287_mm512_mask_reduce_mul_epi64 (__mmask8 __U, __m512i __A)
16288{
16289 __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (1LL), __U, __A);
16291}
16292
16293extern __inline long long
16294__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16295_mm512_mask_reduce_and_epi64 (__mmask8 __U, __m512i __A)
16296{
16297 __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
16299}
16300
16301extern __inline long long
16302__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16303_mm512_mask_reduce_or_epi64 (__mmask8 __U, __m512i __A)
16304{
16305 __A = _mm512_maskz_mov_epi64 (__U, __A);
16307}
16308
16309#undef __MM512_REDUCE_OP
16310#define __MM512_REDUCE_OP(op) \
16311 __m512i __T1 = _mm512_shuffle_i64x2 (__A, __A, 0x4e); \
16312 __m512i __T2 = _mm512_##op (__A, __T1); \
16313 __m512i __T3 \
16314 = (__m512i) __builtin_shuffle ((__v8di) __T2, \
16315 (__v8di) { 2, 3, 0, 1, 6, 7, 4, 5 });\
16316 __m512i __T4 = _mm512_##op (__T2, __T3); \
16317 __m512i __T5 \
16318 = (__m512i) __builtin_shuffle ((__v8di) __T4, \
16319 (__v8di) { 1, 0, 3, 2, 5, 4, 7, 6 });\
16320 __v8di __T6 = (__v8di) _mm512_##op (__T4, __T5); \
16321 return __T6[0]
16322
16323extern __inline long long
16324__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16325_mm512_reduce_min_epi64 (__m512i __A)
16326{
16327 __MM512_REDUCE_OP (min_epi64);
16328}
16329
16330extern __inline long long
16331__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16332_mm512_reduce_max_epi64 (__m512i __A)
16333{
16334 __MM512_REDUCE_OP (max_epi64);
16335}
16336
16337extern __inline long long
16338__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16339_mm512_mask_reduce_min_epi64 (__mmask8 __U, __m512i __A)
16340{
16341 __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (__LONG_LONG_MAX__),
16342 __U, __A);
16344}
16345
16346extern __inline long long
16347__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16348_mm512_mask_reduce_max_epi64 (__mmask8 __U, __m512i __A)
16349{
16350 __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (-__LONG_LONG_MAX__ - 1),
16351 __U, __A);
16353}
16354
16355extern __inline unsigned long long
16356__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16357_mm512_reduce_min_epu64 (__m512i __A)
16358{
16359 __MM512_REDUCE_OP (min_epu64);
16360}
16361
16362extern __inline unsigned long long
16363__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16364_mm512_reduce_max_epu64 (__m512i __A)
16365{
16366 __MM512_REDUCE_OP (max_epu64);
16367}
16368
16369extern __inline unsigned long long
16370__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16371_mm512_mask_reduce_min_epu64 (__mmask8 __U, __m512i __A)
16372{
16373 __A = _mm512_mask_mov_epi64 (_mm512_set1_epi64 (~0LL), __U, __A);
16375}
16376
16377extern __inline unsigned long long
16378__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16379_mm512_mask_reduce_max_epu64 (__mmask8 __U, __m512i __A)
16380{
16381 __A = _mm512_maskz_mov_epi64 (__U, __A);
16383}
16384
16385#undef __MM512_REDUCE_OP
16386#define __MM512_REDUCE_OP(op) \
16387 __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1); \
16388 __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0); \
16389 __m256d __T3 = __T1 op __T2; \
16390 __m128d __T4 = _mm256_extractf128_pd (__T3, 1); \
16391 __m128d __T5 = _mm256_extractf128_pd (__T3, 0); \
16392 __m128d __T6 = __T4 op __T5; \
16393 return __T6[0] op __T6[1]
16394
16395extern __inline double
16396__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16397_mm512_reduce_add_pd (__m512d __A)
16398{
16400}
16401
16402extern __inline double
16403__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16404_mm512_reduce_mul_pd (__m512d __A)
16405{
16407}
16408
16409extern __inline double
16410__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16411_mm512_mask_reduce_add_pd (__mmask8 __U, __m512d __A)
16412{
16413 __A = _mm512_maskz_mov_pd (__U, __A);
16415}
16416
16417extern __inline double
16418__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16419_mm512_mask_reduce_mul_pd (__mmask8 __U, __m512d __A)
16420{
16421 __A = _mm512_mask_mov_pd (_mm512_set1_pd (1.0), __U, __A);
16423}
16424
16425#undef __MM512_REDUCE_OP
16426#define __MM512_REDUCE_OP(op) \
16427 __m256d __T1 = (__m256d) _mm512_extractf64x4_pd (__A, 1); \
16428 __m256d __T2 = (__m256d) _mm512_extractf64x4_pd (__A, 0); \
16429 __m256d __T3 = _mm256_##op (__T1, __T2); \
16430 __m128d __T4 = _mm256_extractf128_pd (__T3, 1); \
16431 __m128d __T5 = _mm256_extractf128_pd (__T3, 0); \
16432 __m128d __T6 = _mm_##op (__T4, __T5); \
16433 __m128d __T7 = (__m128d) __builtin_shuffle (__T6, (__v2di) { 1, 0 }); \
16434 __m128d __T8 = _mm_##op (__T6, __T7); \
16435 return __T8[0]
16436
16437extern __inline double
16438__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16439_mm512_reduce_min_pd (__m512d __A)
16440{
16441 __MM512_REDUCE_OP (min_pd);
16442}
16443
16444extern __inline double
16445__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16446_mm512_reduce_max_pd (__m512d __A)
16447{
16448 __MM512_REDUCE_OP (max_pd);
16449}
16450
16451extern __inline double
16452__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16453_mm512_mask_reduce_min_pd (__mmask8 __U, __m512d __A)
16454{
16455 __A = _mm512_mask_mov_pd (_mm512_set1_pd (__builtin_inf ()), __U, __A);
16457}
16458
16459extern __inline double
16460__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
16461_mm512_mask_reduce_max_pd (__mmask8 __U, __m512d __A)
16462{
16463 __A = _mm512_mask_mov_pd (_mm512_set1_pd (-__builtin_inf ()), __U, __A);
16465}
16466
16467#undef __MM512_REDUCE_OP
16468
16469#ifdef __DISABLE_AVX512F__
16470#undef __DISABLE_AVX512F__
16471#pragma GCC pop_options
16472#endif /* __DISABLE_AVX512F__ */
16473
16474#endif /* _AVX512FINTRIN_H_INCLUDED */
unsigned char __mmask8
Definition avx512cdintrin.h:46
unsigned short __mmask16
Definition avx512cdintrin.h:47
#define _mm512_mask_cvt_roundps_pd(W, U, A, B)
Definition avx512fintrin.h:8651
#define _mm512_maskz_permutex_pd(U, X, M)
Definition avx512fintrin.h:6953
#define _mm512_mask_permutex_pd(W, U, X, M)
Definition avx512fintrin.h:6949
#define _mm_mul_round_ss(A, B, C)
Definition avx512fintrin.h:2952
__inline __m512i short __q30
Definition avx512fintrin.h:102
#define _mm512_mask_fmsubadd_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:3956
#define _mm512_fixupimm_pd(X, Y, Z, C)
Definition avx512fintrin.h:14356
#define _mm512_mask_fmsub_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:3908
#define _mm512_mask_shuffle_i32x4(W, U, X, Y, C)
Definition avx512fintrin.h:4667
#define _mm_fmsub_round_sd(A, B, C, R)
Definition avx512fintrin.h:11860
#define _mm512_mask_scalef_round_pd(W, U, A, B, C)
Definition avx512fintrin.h:3295
__inline __m512i short short short short short short short short __q23
Definition avx512fintrin.h:104
#define _mm512_mask_div_round_pd(W, U, A, B, C)
Definition avx512fintrin.h:2928
__inline __m512i char char char char char char char char char char char char char char __q49
Definition avx512fintrin.h:124
__inline __m512i char char char __q60
Definition avx512fintrin.h:121
#define _mm512_i32scatter_epi64(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10794
__inline __m512i long long long long long long long long __E
Definition avx512fintrin.h:80
#define _mm512_maskz_extracti64x4_epi64(U, X, C)
Definition avx512fintrin.h:6123
#define _mm512_mask_inserti32x4(A, B, X, Y, C)
Definition avx512fintrin.h:11283
#define _mm512_cvt_roundps_pd(A, B)
Definition avx512fintrin.h:8648
#define _mm512_cvtt_roundpd_epi32(A, B)
Definition avx512fintrin.h:4905
__inline __m512i short short short short short short short short short short short short short short short short short short __q13
Definition avx512fintrin.h:106
__inline __m512i char __q62
Definition avx512fintrin.h:121
#define _mm_mask_cmp_ss_mask(M, X, Y, P)
Definition avx512fintrin.h:15436
#define _mm512_mask_i64scatter_pd(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10779
__inline __m512i char char char char char char __q57
Definition avx512fintrin.h:122
#define _mm512_mask_getexp_ps(W, U, A)
Definition avx512fintrin.h:15071
#define _mm512_inserti64x4(X, Y, C)
Definition avx512fintrin.h:6269
__inline __m512i short short short short __q27
Definition avx512fintrin.h:103
#define _mm512_mask_fnmadd_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:3980
#define _mm512_sqrt_round_ps(A, C)
Definition avx512fintrin.h:2137
#define _mm512_extracti64x4_epi64(X, C)
Definition avx512fintrin.h:6111
#define _mm512_mask_roundscale_round_pd(A, B, C, D, R)
Definition avx512fintrin.h:9438
#define _mm512_slli_epi32(X, C)
Definition avx512fintrin.h:1268
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short __q06
Definition avx512fintrin.h:108
#define _mm512_maskz_extracti32x4_epi32(U, X, C)
Definition avx512fintrin.h:6141
#define _mm512_maskz_shuffle_epi32(U, X, C)
Definition avx512fintrin.h:4638
#define _mm_mask_min_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:11729
#define _mm_maskz_max_round_sd(U, A, B, C)
Definition avx512fintrin.h:11705
#define _mm512_mask_cvt_roundps_epi32(W, U, A, B)
Definition avx512fintrin.h:5148
#define _mm_getmant_round_ss(X, Y, C, D, R)
Definition avx512fintrin.h:9208
#define _mm_maskz_fmadd_round_ss(U, A, B, C, R)
Definition avx512fintrin.h:12423
#define _mm512_cvtt_roundps_epi32(A, B)
Definition avx512fintrin.h:5065
#define _mm_sqrt_round_ss(A, B, C)
Definition avx512fintrin.h:2157
#define _mm512_maskz_add_round_ps(U, A, B, C)
Definition avx512fintrin.h:2621
#define _mm512_mask_slli_epi64(W, U, X, C)
Definition avx512fintrin.h:1036
#define _mm512_i32scatter_epi32(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10784
__inline __m512i char char char char __q59
Definition avx512fintrin.h:122
#define _mm512_cvt_roundph_ps(A, B)
Definition avx512fintrin.h:8657
#define _mm512_mask3_fnmadd_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:3995
#define _mm512_maskz_fixupimm_round_pd(U, X, Y, Z, C, R)
Definition avx512fintrin.h:7363
#define _mm512_getmant_pd(X, B, C)
Definition avx512fintrin.h:14959
#define _kshiftli_mask16(X, Y)
Definition avx512fintrin.h:10214
#define _mm512_maskz_fixupimm_round_ps(U, X, Y, Z, C, R)
Definition avx512fintrin.h:7378
#define _mm_maskz_sqrt_round_ss(U, A, B, C)
Definition avx512fintrin.h:2164
#define _mm512_maskz_ternarylogic_epi32(U, A, B, C, I)
Definition avx512fintrin.h:1765
__inline __m512i char char char char char char char char char char char char char char char char char char char char char __q42
Definition avx512fintrin.h:126
#define _mm512_maskz_div_round_ps(U, A, B, C)
Definition avx512fintrin.h:2940
__inline __m512i long long long long long long long long long long long long __G
Definition avx512fintrin.h:81
#define _mm512_maskz_getexp_pd(U, A)
Definition avx512fintrin.h:15087
#define _mm512_mask_cmp_ps_mask(M, X, Y, P)
Definition avx512fintrin.h:15416
#define _mm_mask_fixupimm_ss(X, U, Y, Z, C)
Definition avx512fintrin.h:14406
#define _mm_maskz_fnmsub_round_sd(U, A, B, C, R)
Definition avx512fintrin.h:12474
#define _mm512_scalef_round_ps(A, B, C)
Definition avx512fintrin.h:3304
#define _mm_mask_getmant_round_ss(W, U, X, Y, C, D, R)
Definition avx512fintrin.h:9214
#define _mm512_add_round_ps(A, B, C)
Definition avx512fintrin.h:2615
#define _mm_mask_fmadd_round_ss(A, U, B, C, R)
Definition avx512fintrin.h:12411
__inline __m512i int int int int int int int int int int int int int __N
Definition avx512fintrin.h:93
#define _mm_maskz_roundscale_ss(U, A, B, I)
Definition avx512fintrin.h:15285
double __v8df __attribute__((__vector_size__(64)))
Definition avx512fintrin.h:38
#define _mm512_cmp_epu32_mask(X, Y, P)
Definition avx512fintrin.h:10235
#define _mm_mask3_fmsub_round_ss(A, B, C, U, R)
Definition avx512fintrin.h:12435
__inline __m512i int int int int int int int int int int __K
Definition avx512fintrin.h:92
#define _mm512_i32gather_epi64(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10705
#define _mm512_mask_alignr_epi64(W, U, X, Y, C)
Definition avx512fintrin.h:9667
#define _mm_cvt_roundss_u32(A, B)
Definition avx512fintrin.h:8252
#define _mm512_maskz_roundscale_round_pd(A, B, C, R)
Definition avx512fintrin.h:9443
#define _mm_maskz_fmadd_round_sd(U, A, B, C, R)
Definition avx512fintrin.h:12420
#define _mm512_mask_fixupimm_ps(X, U, Y, Z, C)
Definition avx512fintrin.h:14376
#define _mm512_mask_getexp_round_pd(W, U, A, R)
Definition avx512fintrin.h:9265
#define _mm512_i32gather_ps(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10638
#define _mm512_getexp_pd(A)
Definition avx512fintrin.h:15079
#define _mm512_slli_epi64(X, C)
Definition avx512fintrin.h:1031
#define _mm512_fixupimm_round_pd(X, Y, Z, C, R)
Definition avx512fintrin.h:7353
#define _mm512_roundscale_pd(A, B)
Definition avx512fintrin.h:15256
#define _mm512_fmsubadd_round_ps(A, B, C, R)
Definition avx512fintrin.h:3965
#define _mm512_maskz_max_round_pd(U, A, B, R)
Definition avx512fintrin.h:3122
#define _mm512_cmp_round_ps_mask(X, Y, P, R)
Definition avx512fintrin.h:10245
#define _mm512_maskz_ror_epi64(U, A, B)
Definition avx512fintrin.h:7772
#define _mm512_maskz_scalef_round_pd(U, A, B, C)
Definition avx512fintrin.h:3298
#define _mm512_maskz_shuffle_f32x4(U, X, Y, C)
Definition avx512fintrin.h:4709
#define _mm512_cvt_roundps_epi32(A, B)
Definition avx512fintrin.h:5145
#define _mm512_getmant_round_ps(X, B, C, R)
Definition avx512fintrin.h:9166
#define _mm_maskz_getmant_round_sd(U, X, Y, C, D, R)
Definition avx512fintrin.h:9200
#define _mm512_fixupimm_round_ps(X, Y, Z, C, R)
Definition avx512fintrin.h:7368
#define _mm512_fmadd_round_ps(A, B, C, R)
Definition avx512fintrin.h:3893
#define _mm512_maskz_inserti64x4(U, X, Y, C)
Definition avx512fintrin.h:6281
#define _mm_mul_round_sd(A, B, C)
Definition avx512fintrin.h:2943
__inline __m512i short short short short short short short short short short short short short short short short short short short short __q11
Definition avx512fintrin.h:107
#define _mm_mask_fixupimm_round_ss(X, U, Y, Z, C, R)
Definition avx512fintrin.h:7403
#define _mm512_mask_srli_epi64(W, U, X, C)
Definition avx512fintrin.h:1115
#define _mm512_maskz_cvtps_ph(W, A, I)
Definition avx512fintrin.h:8681
#define _mm512_mask_scalef_round_ps(W, U, A, B, C)
Definition avx512fintrin.h:3310
#define _mm512_mask_rol_epi64(W, U, A, B)
Definition avx512fintrin.h:7751
#define _mm_add_round_sd(A, B, C)
Definition avx512fintrin.h:1604
#define _mm_cvt_roundss_i32(A, B)
Definition avx512fintrin.h:8258
#define _mm_maskz_fixupimm_ss(U, X, Y, Z, C)
Definition avx512fintrin.h:14411
#define _mm_getmant_ss(X, Y, C, D)
Definition avx512fintrin.h:15021
__inline __m512i char char char char char char char char char char char char char char char char __q47
Definition avx512fintrin.h:125
#define _mm512_fmsubadd_round_pd(A, B, C, R)
Definition avx512fintrin.h:3953
#define _mm_mask_scalef_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:3331
#define _mm512_i64scatter_pd(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10774
#define _mm512_sub_round_ps(A, B, C)
Definition avx512fintrin.h:2633
__inline __m512i __mmask16 __m512i __X
Definition avx512fintrin.h:647
#define _mm512_cmp_epi32_mask(X, Y, P)
Definition avx512fintrin.h:10225
#define _mm_maskz_getexp_round_ss(U, A, B, C)
Definition avx512fintrin.h:9236
#define _mm_maskz_roundscale_round_ss(U, A, B, I, R)
Definition avx512fintrin.h:9464
#define _mm_roundscale_ss(A, B, I)
Definition avx512fintrin.h:15269
#define _mm512_mask_shuffle_ps(W, U, X, Y, C)
Definition avx512fintrin.h:7341
#define _mm512_mask_fmaddsub_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:3944
#define _mm512_maskz_slli_epi64(U, X, C)
Definition avx512fintrin.h:1041
#define _mm512_maskz_getmant_pd(U, X, B, C)
Definition avx512fintrin.h:14973
#define _mm_cvtt_roundsd_i32(A, B)
Definition avx512fintrin.h:8393
#define _mm512_mask_cmp_epi64_mask(M, X, Y, P)
Definition avx512fintrin.h:10250
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short __q08
Definition avx512fintrin.h:107
#define _mm512_mask_max_round_ps(W, U, A, B, R)
Definition avx512fintrin.h:3128
#define _mm512_maskz_inserti32x4(A, X, Y, C)
Definition avx512fintrin.h:11273
#define _mm512_mask_min_round_pd(W, U, A, B, R)
Definition avx512fintrin.h:3137
#define _mm_mask_sub_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:1625
#define _mm_getexp_sd(A, B)
Definition avx512fintrin.h:15055
#define _mm512_maskz_srli_epi32(U, X, C)
Definition avx512fintrin.h:1357
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short short short __q03
Definition avx512fintrin.h:109
#define _mm512_mask_sqrt_round_ps(W, U, A, C)
Definition avx512fintrin.h:2140
#define _mm_cvt_roundsi32_ss(A, B, C)
Definition avx512fintrin.h:5234
#define _mm_add_round_ss(A, B, C)
Definition avx512fintrin.h:1613
#define _mm512_cmp_round_pd_mask(X, Y, P, R)
Definition avx512fintrin.h:10240
#define _mm_maskz_fixupimm_round_sd(U, X, Y, Z, C, R)
Definition avx512fintrin.h:7393
#define _mm_maskz_fixupimm_sd(U, X, Y, Z, C)
Definition avx512fintrin.h:14396
#define _mm_mask_scalef_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:3335
#define _mm512_maskz_cvt_roundph_ps(U, A, B)
Definition avx512fintrin.h:8663
#define _mm512_srai_epi32(X, C)
Definition avx512fintrin.h:1426
#define _mm512_i64scatter_epi64(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10814
__inline __m512i char char char char char char char char char __q54
Definition avx512fintrin.h:123
#define _mm_mask_fmadd_round_sd(A, U, B, C, R)
Definition avx512fintrin.h:12408
#define _mm_sqrt_round_sd(A, B, C)
Definition avx512fintrin.h:2146
#define _mm512_shuffle_f64x2(X, Y, C)
Definition avx512fintrin.h:4679
#define _mm512_maskz_shuffle_i32x4(U, X, Y, C)
Definition avx512fintrin.h:4673
#define _mm_mask_add_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:1607
#define _mm512_maskz_max_round_ps(U, A, B, R)
Definition avx512fintrin.h:3131
#define _mm_mask_fixupimm_sd(X, U, Y, Z, C)
Definition avx512fintrin.h:14391
#define _mm512_min_round_ps(A, B, R)
Definition avx512fintrin.h:3143
#define _mm512_i32scatter_ps(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10744
#define _mm512_rol_epi32(A, B)
Definition avx512fintrin.h:7716
#define _mm512_shuffle_ps(X, Y, C)
Definition avx512fintrin.h:7335
#define _mm_mask_getexp_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:9242
__inline __m512i short short short __q28
Definition avx512fintrin.h:102
#define _mm_mask3_fmadd_round_sd(A, B, C, U, R)
Definition avx512fintrin.h:12414
#define _mm_scalef_round_sd(A, B, C)
Definition avx512fintrin.h:3319
#define _mm512_div_round_ps(A, B, C)
Definition avx512fintrin.h:2934
#define _mm512_i64gather_epi64(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10731
#define _mm512_shuffle_epi32(X, C)
Definition avx512fintrin.h:4628
#define _mm512_roundscale_round_ps(A, B, R)
Definition avx512fintrin.h:9422
#define _mm512_cvt_roundepu32_ps(A, B)
Definition avx512fintrin.h:5931
#define _mm512_mask_ternarylogic_epi32(A, U, B, C, I)
Definition avx512fintrin.h:1758
#define _mm_mask_max_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:11711
__inline __m512i char char char char char char char char char char char char char __q50
Definition avx512fintrin.h:124
#define _mm_cmp_round_sd_mask(X, Y, P, R)
Definition avx512fintrin.h:10280
#define _mm512_maskz_shuffle_f64x2(U, X, Y, C)
Definition avx512fintrin.h:4691
#define _mm512_mask_extracti64x4_epi64(W, U, X, C)
Definition avx512fintrin.h:6117
#define _mm512_mask_extractf64x4_pd(W, U, X, C)
Definition avx512fintrin.h:6081
#define _mm_maskz_add_round_sd(U, A, B, C)
Definition avx512fintrin.h:1610
#define _mm_maskz_fmsub_round_ss(U, A, B, C, R)
Definition avx512fintrin.h:12441
#define _mm_maskz_mul_round_sd(U, A, B, C)
Definition avx512fintrin.h:2949
__inline __m512i int int int int int int int int int int int int int int int __P
Definition avx512fintrin.h:94
#define _mm_maskz_fmsub_round_sd(U, A, B, C, R)
Definition avx512fintrin.h:12438
#define _mm512_mask_shuffle_epi32(W, U, X, C)
Definition avx512fintrin.h:4633
#define _mm512_fmsub_round_ps(A, B, C, R)
Definition avx512fintrin.h:3917
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short short short short short __q01
Definition avx512fintrin.h:109
#define _mm512_i64gather_pd(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10678
#define _mm_maskz_getmant_sd(U, X, Y, C, D)
Definition avx512fintrin.h:15013
#define _mm512_mask_getexp_pd(W, U, A)
Definition avx512fintrin.h:15083
#define _mm512_maskz_cvtt_roundpd_epu32(U, A, B)
Definition avx512fintrin.h:4920
#define _mm512_add_round_pd(A, B, C)
Definition avx512fintrin.h:2606
#define _mm_cvtt_roundss_i32(A, B)
Definition avx512fintrin.h:8267
#define _mm512_permutex_pd(X, M)
Definition avx512fintrin.h:6944
#define _mm512_maskz_sub_round_pd(U, A, B, C)
Definition avx512fintrin.h:2630
#define _mm512_max_round_ps(A, B, R)
Definition avx512fintrin.h:3125
#define _mm512_mask_rol_epi32(W, U, A, B)
Definition avx512fintrin.h:7721
#define _mm512_maskz_shuffle_pd(U, X, Y, C)
Definition avx512fintrin.h:7329
#define _mm512_cvt_roundpd_ps(A, B)
Definition avx512fintrin.h:8783
#define _mm_cvtt_roundss_si32(A, B)
Definition avx512fintrin.h:8264
#define _mm512_srli_epi32(X, C)
Definition avx512fintrin.h:1347
#define _mm512_mask_permutex_epi64(W, M, X, I)
Definition avx512fintrin.h:6972
#define _mm512_maskz_sub_round_ps(U, A, B, C)
Definition avx512fintrin.h:2639
#define _mm512_maskz_permutex_epi64(M, X, I)
Definition avx512fintrin.h:6965
#define _mm_mask3_fnmadd_round_ss(A, B, C, U, R)
Definition avx512fintrin.h:12453
#define _mm_maskz_roundscale_round_sd(U, A, B, I, R)
Definition avx512fintrin.h:9488
#define _mm512_mask_cmp_epi32_mask(M, X, Y, P)
Definition avx512fintrin.h:10255
#define _mm512_maskz_fmadd_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:3902
#define _mm_cvt_roundu32_ss(A, B, C)
Definition avx512fintrin.h:5228
#define _mm512_mask3_fnmsub_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:4007
#define _mm512_mask_cvtt_roundps_epu32(W, U, A, B)
Definition avx512fintrin.h:5077
#define _mm512_ror_epi64(A, B)
Definition avx512fintrin.h:7762
__inline __m512i __m512i __Y
Definition avx512fintrin.h:637
#define _mm_cvt_roundi32_ss(A, B, C)
Definition avx512fintrin.h:5231
#define _mm_mask_min_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:11720
#define _mm_maskz_sub_round_ss(U, A, B, C)
Definition avx512fintrin.h:1637
#define _mm512_i32gather_pd(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10652
#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)
Definition avx512fintrin.h:10275
#define _mm512_mask_mul_round_pd(W, U, A, B, C)
Definition avx512fintrin.h:2910
#define _mm512_maskz_fnmadd_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:3986
#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)
Definition avx512fintrin.h:10285
#define _mm512_maskz_cvt_roundpd_epu32(U, A, B)
Definition avx512fintrin.h:5000
#define _mm512_maskz_cvt_roundepi32_ps(U, A, B)
Definition avx512fintrin.h:5928
#define _mm_mask_roundscale_ss(A, U, B, C, I)
Definition avx512fintrin.h:15277
__inline __m512i short short short short short short short short short short short short short short short __q16
Definition avx512fintrin.h:105
#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)
Definition avx512fintrin.h:10270
#define _mm_maskz_getexp_round_sd(U, A, B, C)
Definition avx512fintrin.h:9245
#define _mm_max_round_ss(A, B, C)
Definition avx512fintrin.h:11708
#define _mm512_mask_alignr_epi32(W, U, X, Y, C)
Definition avx512fintrin.h:9652
#define _mm512_cvtps_ph(A, I)
Definition avx512fintrin.h:8669
#define _mm512_mask_mul_round_ps(W, U, A, B, C)
Definition avx512fintrin.h:2919
#define _mm512_mask_fmadd_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:3896
#define _mm512_fmadd_round_pd(A, B, C, R)
Definition avx512fintrin.h:3881
#define _mm512_mask_srai_epi64(W, U, X, C)
Definition avx512fintrin.h:1194
#define _mm_maskz_div_round_sd(U, A, B, C)
Definition avx512fintrin.h:2967
#define _mm_fmsub_round_ss(A, B, C, R)
Definition avx512fintrin.h:11863
#define _mm512_shuffle_pd(X, Y, C)
Definition avx512fintrin.h:7317
_MM_MANTISSA_NORM_ENUM
Definition avx512fintrin.h:8856
@ _MM_MANT_NORM_p5_1
Definition avx512fintrin.h:8859
@ _MM_MANT_NORM_p5_2
Definition avx512fintrin.h:8858
@ _MM_MANT_NORM_1_2
Definition avx512fintrin.h:8857
@ _MM_MANT_NORM_p75_1p5
Definition avx512fintrin.h:8860
#define _mm_mask3_fmadd_round_ss(A, B, C, U, R)
Definition avx512fintrin.h:12417
#define _mm512_mask_getmant_round_pd(W, U, X, B, C, R)
Definition avx512fintrin.h:9153
__inline __m512i long long long long long long long long long long long long long long __H
Definition avx512fintrin.h:82
#define _mm512_maskz_fmsubadd_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:3962
#define _mm512_mask_i64gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10684
#define _mm_mask_cvt_roundsd_ss(W, U, A, B, C)
Definition avx512fintrin.h:8795
#define _mm512_extractf32x4_ps(X, C)
Definition avx512fintrin.h:6093
#define _mm_getexp_round_sd(A, B, R)
Definition avx512fintrin.h:9239
#define _mm512_maskz_rol_epi64(U, A, B)
Definition avx512fintrin.h:7756
#define _mm512_inserti32x4(X, Y, C)
Definition avx512fintrin.h:6247
__inline __m512i short short short short short short short short short short short short short __q18
Definition avx512fintrin.h:105
__inline __m512d __m512d __V
Definition avx512fintrin.h:12889
#define _mm512_fmsub_round_pd(A, B, C, R)
Definition avx512fintrin.h:3905
#define _mm512_maskz_fmsub_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:3926
#define _mm512_mul_round_pd(A, B, C)
Definition avx512fintrin.h:2907
#define _mm512_getmant_ps(X, B, C)
Definition avx512fintrin.h:14979
__inline __m512i int int int int int int int int int __J
Definition avx512fintrin.h:92
#define _mm_scalef_round_ss(A, B, C)
Definition avx512fintrin.h:3325
#define _mm512_maskz_fnmadd_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:3998
#define _mm_div_round_sd(A, B, C)
Definition avx512fintrin.h:2961
#define _mm512_fnmsub_round_ps(A, B, C, R)
Definition avx512fintrin.h:4013
__inline __m512i long long long long __C
Definition avx512fintrin.h:79
#define _mm512_mask_extracti32x4_epi32(W, U, X, C)
Definition avx512fintrin.h:6135
#define _mm512_maskz_roundscale_ps(A, B, C)
Definition avx512fintrin.h:15251
#define _mm512_mask_extractf32x4_ps(W, U, X, C)
Definition avx512fintrin.h:6099
#define _mm_roundscale_round_sd(A, B, I, R)
Definition avx512fintrin.h:9472
#define _mm_maskz_min_round_sd(U, A, B, C)
Definition avx512fintrin.h:11723
#define _mm512_div_round_pd(A, B, C)
Definition avx512fintrin.h:2925
#define _mm512_getexp_ps(A)
Definition avx512fintrin.h:15067
#define _mm512_mask_min_round_ps(W, U, A, B, R)
Definition avx512fintrin.h:3146
#define _mm512_mask_cmp_epu64_mask(M, X, Y, P)
Definition avx512fintrin.h:10260
#define _mm512_ternarylogic_epi32(A, B, C, I)
Definition avx512fintrin.h:1751
#define _mm512_mask3_fmadd_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:3887
#define _mm512_mask_ternarylogic_epi64(A, U, B, C, I)
Definition avx512fintrin.h:1737
#define _mm512_mask_add_round_pd(W, U, A, B, C)
Definition avx512fintrin.h:2609
#define _mm512_maskz_cvt_roundps_epi32(U, A, B)
Definition avx512fintrin.h:5151
#define _mm512_maskz_cvt_roundpd_ps(U, A, B)
Definition avx512fintrin.h:8789
#define _mm512_roundscale_round_pd(A, B, R)
Definition avx512fintrin.h:9435
#define _mm_fixupimm_round_sd(X, Y, Z, C, R)
Definition avx512fintrin.h:7383
#define _mm512_maskz_fmadd_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:3890
#define _mm512_maskz_cvtt_roundps_epi32(U, A, B)
Definition avx512fintrin.h:5071
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short short short short __q02
Definition avx512fintrin.h:109
#define _mm512_maskz_insertf32x4(A, X, Y, C)
Definition avx512fintrin.h:11268
#define _mm512_cmp_epi64_mask(X, Y, P)
Definition avx512fintrin.h:10220
#define _mm512_maskz_extractf32x4_ps(U, X, C)
Definition avx512fintrin.h:6105
#define _mm512_mask_cmp_pd_mask(M, X, Y, P)
Definition avx512fintrin.h:15411
#define _mm512_cmp_pd_mask(X, Y, P)
Definition avx512fintrin.h:15401
#define _mm512_mask_fixupimm_round_ps(X, U, Y, Z, C, R)
Definition avx512fintrin.h:7373
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char __q33
Definition avx512fintrin.h:128
#define _mm512_mask_sub_round_pd(W, U, A, B, C)
Definition avx512fintrin.h:2627
#define _mm512_fmaddsub_round_pd(A, B, C, R)
Definition avx512fintrin.h:3929
#define _mm_maskz_mul_round_ss(U, A, B, C)
Definition avx512fintrin.h:2958
__inline unsigned char __mmask16 unsigned char * __CF
Definition avx512fintrin.h:11097
#define _mm_maskz_scalef_round_sd(U, A, B, C)
Definition avx512fintrin.h:3339
#define _mm512_insertf32x4(X, Y, C)
Definition avx512fintrin.h:6243
#define _mm512_mask_i32scatter_ps(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10749
#define _mm_mask_getexp_sd(W, U, A, B)
Definition avx512fintrin.h:15059
#define _mm512_maskz_insertf64x4(U, X, Y, C)
Definition avx512fintrin.h:6263
#define _mm_cvt_roundsd_ss(A, B, C)
Definition avx512fintrin.h:8792
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char char __q35
Definition avx512fintrin.h:128
#define _mm512_mask_getmant_round_ps(W, U, X, B, C, R)
Definition avx512fintrin.h:9173
#define _mm_getmant_sd(X, Y, C, D)
Definition avx512fintrin.h:14999
#define _mm512_mask_cvt_roundpd_epi32(W, U, A, B)
Definition avx512fintrin.h:4988
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char __q39
Definition avx512fintrin.h:127
__inline __m512d __mmask8 __U
Definition avx512fintrin.h:341
#define _mm512_mask_srli_epi32(W, U, X, C)
Definition avx512fintrin.h:1352
#define _mm_min_round_sd(A, B, C)
Definition avx512fintrin.h:11717
#define _mm_cvt_roundsd_i32(A, B)
Definition avx512fintrin.h:8384
#define _mm512_maskz_roundscale_round_ps(A, B, C, R)
Definition avx512fintrin.h:9430
__inline __m512i long long long long long long __D
Definition avx512fintrin.h:80
#define _mm_min_round_ss(A, B, C)
Definition avx512fintrin.h:11726
#define _mm512_permutex_epi64(X, I)
Definition avx512fintrin.h:6958
__inline __m512i char char char char char char char char __q55
Definition avx512fintrin.h:123
#define _mm512_maskz_sqrt_round_ps(U, A, C)
Definition avx512fintrin.h:2143
#define _mm512_min_round_pd(A, B, R)
Definition avx512fintrin.h:3134
#define _mm_maskz_sub_round_sd(U, A, B, C)
Definition avx512fintrin.h:1628
#define __MM512_REDUCE_OP(op)
Definition avx512fintrin.h:16006
#define _mm512_maskz_div_round_pd(U, A, B, C)
Definition avx512fintrin.h:2931
#define _mm_maskz_fnmsub_round_ss(U, A, B, C, R)
Definition avx512fintrin.h:12477
#define _mm512_cvtt_roundpd_epu32(A, B)
Definition avx512fintrin.h:4914
#define _mm_sub_round_sd(A, B, C)
Definition avx512fintrin.h:1622
__inline __m512i int int int int int int int int int int int __L
Definition avx512fintrin.h:92
#define _mm_cvt_roundss_sd(A, B, C)
Definition avx512fintrin.h:8802
#define _mm512_extractf64x4_pd(X, C)
Definition avx512fintrin.h:6075
__inline __m512i int int int int int int int int int int int int __M
Definition avx512fintrin.h:93
#define _mm512_mask_fnmsub_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:4016
#define _mm512_max_round_pd(A, B, R)
Definition avx512fintrin.h:3116
__inline __m512i long long __B
Definition avx512fintrin.h:79
#define _mm512_i32gather_epi32(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10691
#define _mm512_maskz_cvt_roundps_pd(U, A, B)
Definition avx512fintrin.h:8654
#define _mm512_insertf64x4(X, Y, C)
Definition avx512fintrin.h:6251
#define _mm512_maskz_fixupimm_pd(U, X, Y, Z, C)
Definition avx512fintrin.h:14366
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char __q36
Definition avx512fintrin.h:127
#define _mm512_mask3_fmadd_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:3899
#define _mm512_permute_ps(X, C)
Definition avx512fintrin.h:6868
#define _mm512_maskz_getexp_ps(U, A)
Definition avx512fintrin.h:15075
#define _mm512_mask3_fnmsub_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:4019
#define _mm512_mask_i64gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10724
#define _mm512_mask3_fmsub_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:3923
#define _mm512_mask_sub_round_ps(W, U, A, B, C)
Definition avx512fintrin.h:2636
#define _mm_cvt_roundsd_u32(A, B)
Definition avx512fintrin.h:8378
#define _mm_mask_div_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:2973
#define _mm_maskz_cvt_roundss_sd(U, A, B, C)
Definition avx512fintrin.h:8808
#define _mm512_maskz_srai_epi32(U, X, C)
Definition avx512fintrin.h:1436
#define _mm512_maskz_cvt_roundpd_epi32(U, A, B)
Definition avx512fintrin.h:4991
#define _mm512_mask_i32scatter_pd(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10759
#define _mm512_mask3_fmsub_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:3911
#define _mm512_maskz_getexp_round_ps(U, A, R)
Definition avx512fintrin.h:9257
#define _mm512_mask_roundscale_round_ps(A, B, C, D, R)
Definition avx512fintrin.h:9425
#define _mm512_maskz_fixupimm_ps(U, X, Y, Z, C)
Definition avx512fintrin.h:14381
#define _mm_maskz_min_round_ss(U, A, B, C)
Definition avx512fintrin.h:11732
#define _mm_mask3_fnmsub_round_ss(A, B, C, U, R)
Definition avx512fintrin.h:12471
#define _mm512_mask_getmant_pd(W, U, X, B, C)
Definition avx512fintrin.h:14966
#define _mm512_mask_cvt_roundps_ph(U, W, A, I)
Definition avx512fintrin.h:8672
#define _mm512_maskz_srai_epi64(U, X, C)
Definition avx512fintrin.h:1199
#define _mm512_mask_cvtt_roundpd_epu32(W, U, A, B)
Definition avx512fintrin.h:4917
unsigned char __mmask8
Definition avx512fintrin.h:60
#define _mm512_maskz_mul_round_ps(U, A, B, C)
Definition avx512fintrin.h:2922
__inline __m512d __mmask8 __m512d __A
Definition avx512fintrin.h:342
#define _mm_maskz_getexp_ss(U, A, B)
Definition avx512fintrin.h:15051
#define _mm_fmadd_round_sd(A, B, C, R)
Definition avx512fintrin.h:11854
_MM_TERNLOG_ENUM
Definition avx512fintrin.h:1645
@ _MM_TERNLOG_A
Definition avx512fintrin.h:1646
@ _MM_TERNLOG_B
Definition avx512fintrin.h:1647
@ _MM_TERNLOG_C
Definition avx512fintrin.h:1648
#define _mm512_ternarylogic_epi64(A, B, C, I)
Definition avx512fintrin.h:1730
#define _mm_mask_fnmadd_round_ss(A, U, B, C, R)
Definition avx512fintrin.h:12447
#define _mm512_mask_i32scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10799
#define _mm512_i64scatter_epi32(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10804
#define _mm_cvtt_roundsd_si32(A, B)
Definition avx512fintrin.h:8390
__inline __m512i char char char char char char char char char char char char char char char char char char char __q44
Definition avx512fintrin.h:125
__inline __m512i char char char char char char char char char char char char char char char char char char __q45
Definition avx512fintrin.h:125
__inline __m512i short short short short short short short short short __q22
Definition avx512fintrin.h:104
__inline __m512i char char char char char char char char char char __q53
Definition avx512fintrin.h:123
#define _mm512_mask_cvtt_roundps_epi32(W, U, A, B)
Definition avx512fintrin.h:5068
#define _mm512_getmant_round_pd(X, B, C, R)
Definition avx512fintrin.h:9146
#define _mm_mask_roundscale_round_sd(A, U, B, C, I, R)
Definition avx512fintrin.h:9480
#define _mm512_mask_getmant_ps(W, U, X, B, C)
Definition avx512fintrin.h:14986
#define _mm512_cvt_roundpd_epi32(A, B)
Definition avx512fintrin.h:4985
#define _mm512_fixupimm_ps(X, Y, Z, C)
Definition avx512fintrin.h:14371
#define _mm512_mask_max_round_pd(W, U, A, B, R)
Definition avx512fintrin.h:3119
#define _mm512_maskz_scalef_round_ps(U, A, B, C)
Definition avx512fintrin.h:3313
#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)
Definition avx512fintrin.h:10295
#define _mm512_maskz_mul_round_pd(U, A, B, C)
Definition avx512fintrin.h:2913
#define _mm512_permute_pd(X, C)
Definition avx512fintrin.h:6853
#define _mm_mask_mul_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:2946
#define _mm_fnmsub_round_ss(A, B, C, R)
Definition avx512fintrin.h:11875
#define _mm512_maskz_permute_pd(U, X, C)
Definition avx512fintrin.h:6863
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short short __q04
Definition avx512fintrin.h:108
__inline __m512i short short short short short __q26
Definition avx512fintrin.h:103
#define _mm_cvtt_roundsd_u32(A, B)
Definition avx512fintrin.h:8387
#define _mm_cvt_roundsd_si32(A, B)
Definition avx512fintrin.h:8381
#define _mm512_mask_cmp_epu32_mask(M, X, Y, P)
Definition avx512fintrin.h:10265
#define _mm512_mask_i64gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10671
__inline __m512i char char char char char char char char char char char __q52
Definition avx512fintrin.h:123
#define _mm_maskz_roundscale_sd(U, A, B, I)
Definition avx512fintrin.h:15309
#define _mm512_mask_div_round_ps(W, U, A, B, C)
Definition avx512fintrin.h:2937
#define _mm_mask3_fnmadd_round_sd(A, B, C, U, R)
Definition avx512fintrin.h:12450
_MM_MANTISSA_SIGN_ENUM
Definition avx512fintrin.h:8864
@ _MM_MANT_SIGN_zero
Definition avx512fintrin.h:8866
@ _MM_MANT_SIGN_src
Definition avx512fintrin.h:8865
@ _MM_MANT_SIGN_nan
Definition avx512fintrin.h:8867
__inline __m512i char char char char char char char char char char char char __q51
Definition avx512fintrin.h:124
#define _mm512_maskz_slli_epi32(U, X, C)
Definition avx512fintrin.h:1278
#define _mm_mask_sqrt_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:2150
#define _mm512_mask_cvt_roundepu32_ps(W, U, A, B)
Definition avx512fintrin.h:5934
__inline __m512i char char __q61
Definition avx512fintrin.h:121
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char __q38
Definition avx512fintrin.h:127
#define _mm512_maskz_rol_epi32(U, A, B)
Definition avx512fintrin.h:7726
#define _mm512_ror_epi32(A, B)
Definition avx512fintrin.h:7731
__inline __m512i short short __q29
Definition avx512fintrin.h:102
__inline __m512i short short short short short short __q25
Definition avx512fintrin.h:103
#define _mm_maskz_sqrt_round_sd(U, A, B, C)
Definition avx512fintrin.h:2153
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char char char __q34
Definition avx512fintrin.h:128
#define _mm_cvtt_roundss_u32(A, B)
Definition avx512fintrin.h:8261
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char __q32
Definition avx512fintrin.h:128
#define _mm512_mask_fmsub_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:3920
#define _mm_mask_roundscale_round_ss(A, U, B, C, I, R)
Definition avx512fintrin.h:9456
#define _mm512_i64gather_ps(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10665
#define _mm512_maskz_alignr_epi64(U, X, Y, C)
Definition avx512fintrin.h:9671
#define _mm_fixupimm_round_ss(X, Y, Z, C, R)
Definition avx512fintrin.h:7398
#define _mm512_maskz_getmant_round_pd(U, X, B, C, R)
Definition avx512fintrin.h:9160
#define _mm512_mask_insertf32x4(A, B, X, Y, C)
Definition avx512fintrin.h:11278
#define _mm512_mask_roundscale_ps(A, B, C, D)
Definition avx512fintrin.h:15246
#define _mm512_mask_cvt_roundph_ps(W, U, A, B)
Definition avx512fintrin.h:8660
#define _mm_roundscale_sd(A, B, I)
Definition avx512fintrin.h:15293
#define _mm512_maskz_sqrt_round_pd(U, A, C)
Definition avx512fintrin.h:2134
#define _mm512_maskz_ternarylogic_epi64(U, A, B, C, I)
Definition avx512fintrin.h:1744
#define _mm512_fnmadd_round_ps(A, B, C, R)
Definition avx512fintrin.h:3989
__inline __m512i int int int int int int int int int int int int int int __O
Definition avx512fintrin.h:93
#define _mm512_mask_i32gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10711
#define _mm512_mask3_fnmadd_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:3983
#define _mm_mask_add_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:1616
#define _mm512_mask_fnmsub_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:4004
#define _mm_fixupimm_sd(X, Y, Z, C)
Definition avx512fintrin.h:14386
#define _mm512_maskz_min_round_ps(U, A, B, R)
Definition avx512fintrin.h:3149
#define _mm512_cmp_epu64_mask(X, Y, P)
Definition avx512fintrin.h:10230
#define _mm512_maskz_cvt_roundepu32_ps(U, A, B)
Definition avx512fintrin.h:5937
#define _mm_mask_getexp_ss(W, U, A, B)
Definition avx512fintrin.h:15047
#define _mm_cmp_round_ss_mask(X, Y, P, R)
Definition avx512fintrin.h:10290
#define _mm_mask_roundscale_sd(A, U, B, C, I)
Definition avx512fintrin.h:15301
#define _mm_maskz_fixupimm_round_ss(U, X, Y, Z, C, R)
Definition avx512fintrin.h:7408
#define _mm512_maskz_getexp_round_pd(U, A, R)
Definition avx512fintrin.h:9269
#define _mm512_maskz_getmant_round_ps(U, X, B, C, R)
Definition avx512fintrin.h:9180
#define _mm512_mask_permute_pd(W, U, X, C)
Definition avx512fintrin.h:6858
#define _mm_cmp_ss_mask(X, Y, P)
Definition avx512fintrin.h:15431
#define _mm_fnmadd_round_sd(A, B, C, R)
Definition avx512fintrin.h:11866
#define _mm512_cvt_roundepi32_ps(A, B)
Definition avx512fintrin.h:5922
#define _mm512_cmp_ps_mask(X, Y, P)
Definition avx512fintrin.h:15406
#define _mm512_mask_add_round_ps(W, U, A, B, C)
Definition avx512fintrin.h:2618
#define _mm512_mask_ror_epi64(W, U, A, B)
Definition avx512fintrin.h:7767
#define _mm512_maskz_cvt_roundps_ph(W, A, I)
Definition avx512fintrin.h:8678
__inline __m512i char char char char char char char char char char char char char char char char char __q46
Definition avx512fintrin.h:125
#define _mm512_mask_fixupimm_round_pd(X, U, Y, Z, C, R)
Definition avx512fintrin.h:7358
#define _mm_mask_getmant_round_sd(W, U, X, Y, C, D, R)
Definition avx512fintrin.h:9192
#define _mm_mask_fnmsub_round_ss(A, U, B, C, R)
Definition avx512fintrin.h:12465
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char __q41
Definition avx512fintrin.h:126
__inline __m512i short short short short short short short short short short short short short short short short short short short __q12
Definition avx512fintrin.h:106
#define _mm_mask_getmant_ss(W, U, X, Y, C, D)
Definition avx512fintrin.h:15027
#define _mm512_maskz_shuffle_ps(U, X, Y, C)
Definition avx512fintrin.h:7347
__inline __m512i char char char char char char char char char char char char char char char char char char char char __q43
Definition avx512fintrin.h:126
#define _mm512_mask_cvt_roundps_epu32(W, U, A, B)
Definition avx512fintrin.h:5157
#define _mm_mask3_fmsub_round_sd(A, B, C, U, R)
Definition avx512fintrin.h:12432
#define _mm_comi_round_sd(A, B, C, D)
Definition avx512fintrin.h:12498
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short __q07
Definition avx512fintrin.h:108
#define _mm512_mask_inserti64x4(W, U, X, Y, C)
Definition avx512fintrin.h:6275
#define _mm512_cvt_roundps_ph(A, I)
Definition avx512fintrin.h:8666
#define _mm512_mask_shuffle_f32x4(W, U, X, Y, C)
Definition avx512fintrin.h:4703
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char __q37
Definition avx512fintrin.h:127
#define _mm512_maskz_shuffle_i64x2(U, X, Y, C)
Definition avx512fintrin.h:4655
_MM_PERM_ENUM
Definition avx512fintrin.h:4365
@ _MM_PERM_BBCA
Definition avx512fintrin.h:4395
@ _MM_PERM_BCBD
Definition avx512fintrin.h:4400
@ _MM_PERM_DAAB
Definition avx512fintrin.h:4430
@ _MM_PERM_CBBD
Definition avx512fintrin.h:4416
@ _MM_PERM_DCCC
Definition avx512fintrin.h:4444
@ _MM_PERM_CDBB
Definition avx512fintrin.h:4426
@ _MM_PERM_DDDD
Definition avx512fintrin.h:4451
@ _MM_PERM_CCCC
Definition avx512fintrin.h:4422
@ _MM_PERM_CADA
Definition avx512fintrin.h:4412
@ _MM_PERM_BACD
Definition avx512fintrin.h:4391
@ _MM_PERM_CCAD
Definition avx512fintrin.h:4420
@ _MM_PERM_ABDB
Definition avx512fintrin.h:4375
@ _MM_PERM_BBBD
Definition avx512fintrin.h:4395
@ _MM_PERM_DCAB
Definition avx512fintrin.h:4441
@ _MM_PERM_BABC
Definition avx512fintrin.h:4389
@ _MM_PERM_AACD
Definition avx512fintrin.h:4369
@ _MM_PERM_BBAB
Definition avx512fintrin.h:4393
@ _MM_PERM_DCDB
Definition avx512fintrin.h:4445
@ _MM_PERM_BACC
Definition avx512fintrin.h:4390
@ _MM_PERM_ABDA
Definition avx512fintrin.h:4375
@ _MM_PERM_ACCC
Definition avx512fintrin.h:4380
@ _MM_PERM_ADAC
Definition avx512fintrin.h:4382
@ _MM_PERM_CCCD
Definition avx512fintrin.h:4423
@ _MM_PERM_CADD
Definition avx512fintrin.h:4413
@ _MM_PERM_ACCB
Definition avx512fintrin.h:4379
@ _MM_PERM_BBDB
Definition avx512fintrin.h:4397
@ _MM_PERM_ABBB
Definition avx512fintrin.h:4373
@ _MM_PERM_BACB
Definition avx512fintrin.h:4390
@ _MM_PERM_CDCA
Definition avx512fintrin.h:4427
@ _MM_PERM_ACBC
Definition avx512fintrin.h:4378
@ _MM_PERM_ADCB
Definition avx512fintrin.h:4385
@ _MM_PERM_BBBC
Definition avx512fintrin.h:4394
@ _MM_PERM_DBBA
Definition avx512fintrin.h:4436
@ _MM_PERM_BBBB
Definition avx512fintrin.h:4394
@ _MM_PERM_DDDB
Definition avx512fintrin.h:4450
@ _MM_PERM_CAAA
Definition avx512fintrin.h:4408
@ _MM_PERM_ADBB
Definition avx512fintrin.h:4383
@ _MM_PERM_ACDB
Definition avx512fintrin.h:4381
@ _MM_PERM_DCAD
Definition avx512fintrin.h:4441
@ _MM_PERM_DBBC
Definition avx512fintrin.h:4437
@ _MM_PERM_BAAB
Definition avx512fintrin.h:4387
@ _MM_PERM_BDDD
Definition avx512fintrin.h:4408
@ _MM_PERM_BBAD
Definition avx512fintrin.h:4393
@ _MM_PERM_DDBA
Definition avx512fintrin.h:4447
@ _MM_PERM_CDCD
Definition avx512fintrin.h:4428
@ _MM_PERM_CCCA
Definition avx512fintrin.h:4422
@ _MM_PERM_DBBB
Definition avx512fintrin.h:4437
@ _MM_PERM_DAAD
Definition avx512fintrin.h:4431
@ _MM_PERM_DCBA
Definition avx512fintrin.h:4442
@ _MM_PERM_CCBC
Definition avx512fintrin.h:4421
@ _MM_PERM_ADDD
Definition avx512fintrin.h:4387
@ _MM_PERM_DBAC
Definition avx512fintrin.h:4436
@ _MM_PERM_ABAB
Definition avx512fintrin.h:4371
@ _MM_PERM_CBDB
Definition avx512fintrin.h:4418
@ _MM_PERM_CDBC
Definition avx512fintrin.h:4426
@ _MM_PERM_AABC
Definition avx512fintrin.h:4368
@ _MM_PERM_DABD
Definition avx512fintrin.h:4432
@ _MM_PERM_CBBA
Definition avx512fintrin.h:4415
@ _MM_PERM_CBAA
Definition avx512fintrin.h:4414
@ _MM_PERM_BDDB
Definition avx512fintrin.h:4407
@ _MM_PERM_CABC
Definition avx512fintrin.h:4410
@ _MM_PERM_BDBD
Definition avx512fintrin.h:4405
@ _MM_PERM_BCAD
Definition avx512fintrin.h:4399
@ _MM_PERM_ACBA
Definition avx512fintrin.h:4378
@ _MM_PERM_ADBA
Definition avx512fintrin.h:4383
@ _MM_PERM_ADBC
Definition avx512fintrin.h:4384
@ _MM_PERM_DBCB
Definition avx512fintrin.h:4438
@ _MM_PERM_CBDC
Definition avx512fintrin.h:4418
@ _MM_PERM_CBAD
Definition avx512fintrin.h:4415
@ _MM_PERM_ABCC
Definition avx512fintrin.h:4374
@ _MM_PERM_AAAD
Definition avx512fintrin.h:4367
@ _MM_PERM_CBAC
Definition avx512fintrin.h:4414
@ _MM_PERM_CCDA
Definition avx512fintrin.h:4423
@ _MM_PERM_CDAC
Definition avx512fintrin.h:4425
@ _MM_PERM_BADD
Definition avx512fintrin.h:4392
@ _MM_PERM_DAAC
Definition avx512fintrin.h:4430
@ _MM_PERM_BCCC
Definition avx512fintrin.h:4401
@ _MM_PERM_DBBD
Definition avx512fintrin.h:4437
@ _MM_PERM_DDAC
Definition avx512fintrin.h:4446
@ _MM_PERM_DACD
Definition avx512fintrin.h:4433
@ _MM_PERM_BAAC
Definition avx512fintrin.h:4388
@ _MM_PERM_ACCA
Definition avx512fintrin.h:4379
@ _MM_PERM_ABDD
Definition avx512fintrin.h:4376
@ _MM_PERM_BBCC
Definition avx512fintrin.h:4396
@ _MM_PERM_DAAA
Definition avx512fintrin.h:4430
@ _MM_PERM_CAAB
Definition avx512fintrin.h:4409
@ _MM_PERM_BCDB
Definition avx512fintrin.h:4402
@ _MM_PERM_ACBB
Definition avx512fintrin.h:4378
@ _MM_PERM_CDAB
Definition avx512fintrin.h:4425
@ _MM_PERM_DBDB
Definition avx512fintrin.h:4439
@ _MM_PERM_AABB
Definition avx512fintrin.h:4367
@ _MM_PERM_DBDA
Definition avx512fintrin.h:4439
@ _MM_PERM_BCBA
Definition avx512fintrin.h:4399
@ _MM_PERM_CBAB
Definition avx512fintrin.h:4414
@ _MM_PERM_DCDC
Definition avx512fintrin.h:4445
@ _MM_PERM_BBCB
Definition avx512fintrin.h:4395
@ _MM_PERM_CDCB
Definition avx512fintrin.h:4427
@ _MM_PERM_AACA
Definition avx512fintrin.h:4368
@ _MM_PERM_ACBD
Definition avx512fintrin.h:4379
@ _MM_PERM_AAAB
Definition avx512fintrin.h:4366
@ _MM_PERM_DCCB
Definition avx512fintrin.h:4443
@ _MM_PERM_ADDB
Definition avx512fintrin.h:4386
@ _MM_PERM_AAAA
Definition avx512fintrin.h:4366
@ _MM_PERM_AACC
Definition avx512fintrin.h:4369
@ _MM_PERM_BDDC
Definition avx512fintrin.h:4408
@ _MM_PERM_CBBC
Definition avx512fintrin.h:4416
@ _MM_PERM_DDCC
Definition avx512fintrin.h:4449
@ _MM_PERM_CABD
Definition avx512fintrin.h:4411
@ _MM_PERM_AADC
Definition avx512fintrin.h:4370
@ _MM_PERM_BCBC
Definition avx512fintrin.h:4400
@ _MM_PERM_BCCA
Definition avx512fintrin.h:4400
@ _MM_PERM_CCBD
Definition avx512fintrin.h:4421
@ _MM_PERM_CBBB
Definition avx512fintrin.h:4415
@ _MM_PERM_CDBA
Definition avx512fintrin.h:4426
@ _MM_PERM_CACD
Definition avx512fintrin.h:4412
@ _MM_PERM_BDAD
Definition avx512fintrin.h:4404
@ _MM_PERM_ADCA
Definition avx512fintrin.h:4384
@ _MM_PERM_AAAC
Definition avx512fintrin.h:4366
@ _MM_PERM_BDDA
Definition avx512fintrin.h:4407
@ _MM_PERM_CCAC
Definition avx512fintrin.h:4420
@ _MM_PERM_ACDC
Definition avx512fintrin.h:4381
@ _MM_PERM_DBCA
Definition avx512fintrin.h:4438
@ _MM_PERM_DBAA
Definition avx512fintrin.h:4435
@ _MM_PERM_AABD
Definition avx512fintrin.h:4368
@ _MM_PERM_CDCC
Definition avx512fintrin.h:4428
@ _MM_PERM_DCAA
Definition avx512fintrin.h:4440
@ _MM_PERM_DDDC
Definition avx512fintrin.h:4450
@ _MM_PERM_CDDB
Definition avx512fintrin.h:4429
@ _MM_PERM_AABA
Definition avx512fintrin.h:4367
@ _MM_PERM_DDBB
Definition avx512fintrin.h:4447
@ _MM_PERM_CDDA
Definition avx512fintrin.h:4428
@ _MM_PERM_AADD
Definition avx512fintrin.h:4371
@ _MM_PERM_BADC
Definition avx512fintrin.h:4392
@ _MM_PERM_BDBA
Definition avx512fintrin.h:4404
@ _MM_PERM_DBDD
Definition avx512fintrin.h:4440
@ _MM_PERM_BDAC
Definition avx512fintrin.h:4404
@ _MM_PERM_DBDC
Definition avx512fintrin.h:4440
@ _MM_PERM_BBBA
Definition avx512fintrin.h:4394
@ _MM_PERM_DDBC
Definition avx512fintrin.h:4448
@ _MM_PERM_BAAA
Definition avx512fintrin.h:4387
@ _MM_PERM_BDCC
Definition avx512fintrin.h:4406
@ _MM_PERM_DDAB
Definition avx512fintrin.h:4446
@ _MM_PERM_BCCB
Definition avx512fintrin.h:4401
@ _MM_PERM_BCCD
Definition avx512fintrin.h:4401
@ _MM_PERM_ADBD
Definition avx512fintrin.h:4384
@ _MM_PERM_ADCC
Definition avx512fintrin.h:4385
@ _MM_PERM_CCBB
Definition avx512fintrin.h:4421
@ _MM_PERM_CDAA
Definition avx512fintrin.h:4424
@ _MM_PERM_BBDA
Definition avx512fintrin.h:4396
@ _MM_PERM_CACC
Definition avx512fintrin.h:4412
@ _MM_PERM_DCBB
Definition avx512fintrin.h:4442
@ _MM_PERM_DABA
Definition avx512fintrin.h:4431
@ _MM_PERM_BADB
Definition avx512fintrin.h:4391
@ _MM_PERM_ABCA
Definition avx512fintrin.h:4374
@ _MM_PERM_CBCC
Definition avx512fintrin.h:4417
@ _MM_PERM_ABAD
Definition avx512fintrin.h:4372
@ _MM_PERM_BDBC
Definition avx512fintrin.h:4405
@ _MM_PERM_DDDA
Definition avx512fintrin.h:4450
@ _MM_PERM_ADAB
Definition avx512fintrin.h:4382
@ _MM_PERM_CADB
Definition avx512fintrin.h:4413
@ _MM_PERM_ADAA
Definition avx512fintrin.h:4382
@ _MM_PERM_ACAC
Definition avx512fintrin.h:4377
@ _MM_PERM_DADD
Definition avx512fintrin.h:4435
@ _MM_PERM_BABD
Definition avx512fintrin.h:4389
@ _MM_PERM_ACCD
Definition avx512fintrin.h:4380
@ _MM_PERM_CCAA
Definition avx512fintrin.h:4419
@ _MM_PERM_AADA
Definition avx512fintrin.h:4370
@ _MM_PERM_BDCA
Definition avx512fintrin.h:4406
@ _MM_PERM_CDDD
Definition avx512fintrin.h:4429
@ _MM_PERM_ABBD
Definition avx512fintrin.h:4373
@ _MM_PERM_ACAA
Definition avx512fintrin.h:4376
@ _MM_PERM_ACDD
Definition avx512fintrin.h:4381
@ _MM_PERM_DABB
Definition avx512fintrin.h:4431
@ _MM_PERM_CCCB
Definition avx512fintrin.h:4422
@ _MM_PERM_AADB
Definition avx512fintrin.h:4370
@ _MM_PERM_DBAD
Definition avx512fintrin.h:4436
@ _MM_PERM_BBDD
Definition avx512fintrin.h:4397
@ _MM_PERM_BCDC
Definition avx512fintrin.h:4402
@ _MM_PERM_CABA
Definition avx512fintrin.h:4410
@ _MM_PERM_BBAA
Definition avx512fintrin.h:4392
@ _MM_PERM_ADAD
Definition avx512fintrin.h:4383
@ _MM_PERM_BADA
Definition avx512fintrin.h:4391
@ _MM_PERM_DCDA
Definition avx512fintrin.h:4444
@ _MM_PERM_ABBA
Definition avx512fintrin.h:4372
@ _MM_PERM_ACAB
Definition avx512fintrin.h:4377
@ _MM_PERM_CCDD
Definition avx512fintrin.h:4424
@ _MM_PERM_CADC
Definition avx512fintrin.h:4413
@ _MM_PERM_DDCB
Definition avx512fintrin.h:4449
@ _MM_PERM_BABB
Definition avx512fintrin.h:4389
@ _MM_PERM_CCDB
Definition avx512fintrin.h:4423
@ _MM_PERM_DDAD
Definition avx512fintrin.h:4447
@ _MM_PERM_DBCC
Definition avx512fintrin.h:4438
@ _MM_PERM_BCBB
Definition avx512fintrin.h:4399
@ _MM_PERM_ADDC
Definition avx512fintrin.h:4386
@ _MM_PERM_CCBA
Definition avx512fintrin.h:4420
@ _MM_PERM_ABCD
Definition avx512fintrin.h:4375
@ _MM_PERM_BCAB
Definition avx512fintrin.h:4398
@ _MM_PERM_DCBC
Definition avx512fintrin.h:4442
@ _MM_PERM_BCDD
Definition avx512fintrin.h:4403
@ _MM_PERM_CCDC
Definition avx512fintrin.h:4424
@ _MM_PERM_ABAC
Definition avx512fintrin.h:4372
@ _MM_PERM_CBCB
Definition avx512fintrin.h:4417
@ _MM_PERM_CCAB
Definition avx512fintrin.h:4419
@ _MM_PERM_DDCD
Definition avx512fintrin.h:4449
@ _MM_PERM_DACA
Definition avx512fintrin.h:4432
@ _MM_PERM_ACAD
Definition avx512fintrin.h:4377
@ _MM_PERM_BABA
Definition avx512fintrin.h:4388
@ _MM_PERM_CBCD
Definition avx512fintrin.h:4417
@ _MM_PERM_CAAD
Definition avx512fintrin.h:4409
@ _MM_PERM_DCDD
Definition avx512fintrin.h:4445
@ _MM_PERM_BDBB
Definition avx512fintrin.h:4405
@ _MM_PERM_BCAA
Definition avx512fintrin.h:4398
@ _MM_PERM_ABDC
Definition avx512fintrin.h:4376
@ _MM_PERM_BBCD
Definition avx512fintrin.h:4396
@ _MM_PERM_CAAC
Definition avx512fintrin.h:4409
@ _MM_PERM_BBAC
Definition avx512fintrin.h:4393
@ _MM_PERM_CBCA
Definition avx512fintrin.h:4416
@ _MM_PERM_DCAC
Definition avx512fintrin.h:4441
@ _MM_PERM_ABAA
Definition avx512fintrin.h:4371
@ _MM_PERM_CACB
Definition avx512fintrin.h:4411
@ _MM_PERM_BBDC
Definition avx512fintrin.h:4397
@ _MM_PERM_CDAD
Definition avx512fintrin.h:4425
@ _MM_PERM_ADCD
Definition avx512fintrin.h:4385
@ _MM_PERM_DADB
Definition avx512fintrin.h:4434
@ _MM_PERM_DBCD
Definition avx512fintrin.h:4439
@ _MM_PERM_DACC
Definition avx512fintrin.h:4433
@ _MM_PERM_DACB
Definition avx512fintrin.h:4433
@ _MM_PERM_DCBD
Definition avx512fintrin.h:4443
@ _MM_PERM_CACA
Definition avx512fintrin.h:4411
@ _MM_PERM_ABBC
Definition avx512fintrin.h:4373
@ _MM_PERM_DCCA
Definition avx512fintrin.h:4443
@ _MM_PERM_DABC
Definition avx512fintrin.h:4432
@ _MM_PERM_CBDD
Definition avx512fintrin.h:4419
@ _MM_PERM_DDBD
Definition avx512fintrin.h:4448
@ _MM_PERM_DDCA
Definition avx512fintrin.h:4448
@ _MM_PERM_BDCD
Definition avx512fintrin.h:4407
@ _MM_PERM_CDBD
Definition avx512fintrin.h:4427
@ _MM_PERM_ABCB
Definition avx512fintrin.h:4374
@ _MM_PERM_CDDC
Definition avx512fintrin.h:4429
@ _MM_PERM_AACB
Definition avx512fintrin.h:4369
@ _MM_PERM_DDAA
Definition avx512fintrin.h:4446
@ _MM_PERM_ADDA
Definition avx512fintrin.h:4386
@ _MM_PERM_DADA
Definition avx512fintrin.h:4434
@ _MM_PERM_BCDA
Definition avx512fintrin.h:4402
@ _MM_PERM_BDAB
Definition avx512fintrin.h:4403
@ _MM_PERM_BAAD
Definition avx512fintrin.h:4388
@ _MM_PERM_DBAB
Definition avx512fintrin.h:4435
@ _MM_PERM_DCCD
Definition avx512fintrin.h:4444
@ _MM_PERM_CABB
Definition avx512fintrin.h:4410
@ _MM_PERM_BDAA
Definition avx512fintrin.h:4403
@ _MM_PERM_BDCB
Definition avx512fintrin.h:4406
@ _MM_PERM_ACDA
Definition avx512fintrin.h:4380
@ _MM_PERM_DADC
Definition avx512fintrin.h:4434
@ _MM_PERM_CBDA
Definition avx512fintrin.h:4418
@ _MM_PERM_BCAC
Definition avx512fintrin.h:4398
@ _MM_PERM_BACA
Definition avx512fintrin.h:4390
#define _mm512_mask_getexp_round_ps(W, U, A, R)
Definition avx512fintrin.h:9253
#define _mm_maskz_div_round_ss(U, A, B, C)
Definition avx512fintrin.h:2976
#define _mm512_shuffle_i32x4(X, Y, C)
Definition avx512fintrin.h:4661
#define _mm_maskz_fnmadd_round_sd(U, A, B, C, R)
Definition avx512fintrin.h:12456
#define _mm512_mul_round_ps(A, B, C)
Definition avx512fintrin.h:2916
#define _mm_fmadd_round_ss(A, B, C, R)
Definition avx512fintrin.h:11857
#define _mm_roundscale_round_ss(A, B, I, R)
Definition avx512fintrin.h:9448
#define _mm512_mask_permute_ps(W, U, X, C)
Definition avx512fintrin.h:6873
#define _mm_mask_sub_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:1634
#define _mm512_shuffle_f32x4(X, Y, C)
Definition avx512fintrin.h:4697
#define _mm_mask_mul_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:2955
#define _mm512_mask_i32scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10789
#define _mm512_mask_sqrt_round_pd(W, U, A, C)
Definition avx512fintrin.h:2131
#define _mm512_roundscale_ps(A, B)
Definition avx512fintrin.h:15243
#define _mm_getmant_round_sd(X, Y, C, D, R)
Definition avx512fintrin.h:9186
#define _mm_mask_getmant_sd(W, U, X, Y, C, D)
Definition avx512fintrin.h:15005
__inline __m512i short short short short short short short short short short short short short short short short short __q14
Definition avx512fintrin.h:106
#define _mm512_maskz_fmsubadd_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:3974
#define _mm512_mask3_fmsubadd_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:3959
#define _mm_mask_fixupimm_round_sd(X, U, Y, Z, C, R)
Definition avx512fintrin.h:7388
#define _mm512_mask3_fmaddsub_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:3947
#define _mm_getexp_ss(A, B)
Definition avx512fintrin.h:15043
#define _mm512_getexp_round_pd(A, R)
Definition avx512fintrin.h:9261
#define _mm512_maskz_fmaddsub_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:3950
#define _mm512_maskz_cvtt_roundpd_epi32(U, A, B)
Definition avx512fintrin.h:4911
#define _mm512_mask_i64gather_epi64(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10737
#define _mm512_mask_i64scatter_epi64(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10819
#define _mm512_maskz_fnmsub_round_ps(U, A, B, C, R)
Definition avx512fintrin.h:4022
#define _mm_getexp_round_ss(A, B, R)
Definition avx512fintrin.h:9230
#define _mm512_maskz_permute_ps(U, X, C)
Definition avx512fintrin.h:6878
#define _mm512_maskz_cvtt_roundps_epu32(U, A, B)
Definition avx512fintrin.h:5080
__inline __m512i char char char char char char char __q56
Definition avx512fintrin.h:122
__inline __m512d __m512d __m512d __W
Definition avx512fintrin.h:11740
#define _mm512_mask_fmadd_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:3884
#define _mm512_cvt_roundpd_epu32(A, B)
Definition avx512fintrin.h:4994
#define _mm512_maskz_alignr_epi32(U, X, Y, C)
Definition avx512fintrin.h:9657
__inline __m512i short short short short short short short short short short short short __q19
Definition avx512fintrin.h:105
#define _mm_maskz_getmant_ss(U, X, Y, C, D)
Definition avx512fintrin.h:15035
#define _mm512_mask_i32gather_pd(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10658
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char __q40
Definition avx512fintrin.h:126
#define _mm512_maskz_extractf64x4_pd(U, X, C)
Definition avx512fintrin.h:6087
#define _mm512_sqrt_round_pd(A, C)
Definition avx512fintrin.h:2128
#define _mm512_maskz_fmsub_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:3914
#define _mm_maskz_fnmadd_round_ss(U, A, B, C, R)
Definition avx512fintrin.h:12459
#define _mm_maskz_add_round_ss(U, A, B, C)
Definition avx512fintrin.h:1619
#define _mm512_maskz_getmant_ps(U, X, B, C)
Definition avx512fintrin.h:14993
#define _mm512_mask_srai_epi32(W, U, X, C)
Definition avx512fintrin.h:1431
#define _mm_mask_cmp_sd_mask(M, X, Y, P)
Definition avx512fintrin.h:15426
#define _mm512_cvtt_roundps_epu32(A, B)
Definition avx512fintrin.h:5074
#define _mm_mask_cvt_roundss_sd(W, U, A, B, C)
Definition avx512fintrin.h:8805
#define _mm512_mask_i64scatter_epi32(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10809
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short __q05
Definition avx512fintrin.h:108
#define _mm_mask_max_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:11702
#define _mm512_mask_fmaddsub_round_pd(A, U, B, C, R)
Definition avx512fintrin.h:3932
#define _mm512_srli_epi64(X, C)
Definition avx512fintrin.h:1110
#define _mm_cvt_roundss_si32(A, B)
Definition avx512fintrin.h:8255
__inline __m512i long long long long long long long long long long __F
Definition avx512fintrin.h:80
#define _kshiftri_mask16(X, Y)
Definition avx512fintrin.h:10217
#define _mm512_fnmsub_round_pd(A, B, C, R)
Definition avx512fintrin.h:4001
#define _mm512_maskz_srli_epi64(U, X, C)
Definition avx512fintrin.h:1120
#define _mm512_mask_i32gather_epi32(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10698
#define _mm_mask_sqrt_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:2161
__inline __m512i short short short short short short short short short short short short short short short short short short short short short __q10
Definition avx512fintrin.h:107
#define _mm_maskz_getexp_sd(U, A, B)
Definition avx512fintrin.h:15063
#define _mm512_maskz_add_round_pd(U, A, B, C)
Definition avx512fintrin.h:2612
#define _mm_mask_fmsub_round_sd(A, U, B, C, R)
Definition avx512fintrin.h:12426
#define _mm_mask_fmsub_round_ss(A, U, B, C, R)
Definition avx512fintrin.h:12429
unsigned short __mmask16
Definition avx512fintrin.h:61
#define _mm512_sub_round_pd(A, B, C)
Definition avx512fintrin.h:2624
#define _mm512_alignr_epi64(X, Y, C)
Definition avx512fintrin.h:9662
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short short short short short short short short short short __q00
Definition avx512fintrin.h:110
__inline __m512i short short short short short short short short short short short __q20
Definition avx512fintrin.h:104
#define _mm512_cvt_roundps_epu32(A, B)
Definition avx512fintrin.h:5154
#define _mm_maskz_cvt_roundsd_ss(U, A, B, C)
Definition avx512fintrin.h:8798
#define _mm512_rol_epi64(A, B)
Definition avx512fintrin.h:7746
#define _mm512_getexp_round_ps(A, R)
Definition avx512fintrin.h:9249
#define _mm512_maskz_cvt_roundps_epu32(U, A, B)
Definition avx512fintrin.h:5160
#define _mm512_mask_fixupimm_pd(X, U, Y, Z, C)
Definition avx512fintrin.h:14361
#define _mm512_mask3_fmsubadd_round_ps(A, B, C, U, R)
Definition avx512fintrin.h:3971
__inline __m512i short short short short short short short short short short __q21
Definition avx512fintrin.h:104
#define _mm_mask_div_round_sd(W, U, A, B, C)
Definition avx512fintrin.h:2964
__inline __m512i int int int int int int int int __I
Definition avx512fintrin.h:92
#define _mm512_mask_ror_epi32(W, U, A, B)
Definition avx512fintrin.h:7736
#define _mm512_fnmadd_round_pd(A, B, C, R)
Definition avx512fintrin.h:3977
#define _mm512_scalef_round_pd(A, B, C)
Definition avx512fintrin.h:3289
__inline __m512i short short short short short short short __q24
Definition avx512fintrin.h:103
__inline __m512i char char char char char __q58
Definition avx512fintrin.h:122
#define _mm512_mask_insertf64x4(W, U, X, Y, C)
Definition avx512fintrin.h:6257
#define _mm512_i64gather_epi32(INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10718
#define _mm512_i32scatter_pd(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10754
#define _mm512_maskz_roundscale_pd(A, B, C)
Definition avx512fintrin.h:15264
#define _mm512_srai_epi64(X, C)
Definition avx512fintrin.h:1189
#define _mm_fnmadd_round_ss(A, B, C, R)
Definition avx512fintrin.h:11869
#define _mm_mask_fnmsub_round_sd(A, U, B, C, R)
Definition avx512fintrin.h:12462
#define _mm_maskz_scalef_round_ss(U, A, B, C)
Definition avx512fintrin.h:3345
#define _mm_mask_getexp_round_ss(W, U, A, B, C)
Definition avx512fintrin.h:9233
#define _mm512_mask_cvt_roundpd_ps(W, U, A, B)
Definition avx512fintrin.h:8786
__inline __m512i short short short short short short short short short short short short short short short short __q15
Definition avx512fintrin.h:106
#define _mm512_mask_i64scatter_ps(ADDR, MASK, INDEX, V1, SCALE)
Definition avx512fintrin.h:10769
#define _mm512_mask_shuffle_f64x2(W, U, X, Y, C)
Definition avx512fintrin.h:4685
#define _mm512_fmaddsub_round_ps(A, B, C, R)
Definition avx512fintrin.h:3941
#define _mm512_mask_cvtps_ph(U, W, A, I)
Definition avx512fintrin.h:8675
#define _mm512_mask_slli_epi32(W, U, X, C)
Definition avx512fintrin.h:1273
#define _mm512_maskz_ror_epi32(U, A, B)
Definition avx512fintrin.h:7741
#define _mm512_mask_fmsubadd_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:3968
#define _mm512_mask_shuffle_i64x2(W, U, X, Y, C)
Definition avx512fintrin.h:4649
#define _mm512_alignr_epi32(X, Y, C)
Definition avx512fintrin.h:9647
#define _mm_mask3_fnmsub_round_sd(A, B, C, U, R)
Definition avx512fintrin.h:12468
#define _mm512_extracti32x4_epi32(X, C)
Definition avx512fintrin.h:6129
#define _mm_sub_round_ss(A, B, C)
Definition avx512fintrin.h:1631
#define _mm512_maskz_min_round_pd(U, A, B, R)
Definition avx512fintrin.h:3140
__inline __m512i short short short short short short short short short short short short short short short short short short short short short short __q09
Definition avx512fintrin.h:107
#define _mm512_mask_roundscale_pd(A, B, C, D)
Definition avx512fintrin.h:15259
#define _mm_div_round_ss(A, B, C)
Definition avx512fintrin.h:2970
#define _mm512_mask_cvt_roundepi32_ps(W, U, A, B)
Definition avx512fintrin.h:5925
__inline __m512i char char char char char char char char char char char char char char char __q48
Definition avx512fintrin.h:124
#define _mm_mask_fnmadd_round_sd(A, U, B, C, R)
Definition avx512fintrin.h:12444
#define _mm512_mask_fnmadd_round_ps(A, U, B, C, R)
Definition avx512fintrin.h:3992
#define _mm_maskz_max_round_ss(U, A, B, C)
Definition avx512fintrin.h:11714
#define _mm_max_round_sd(A, B, C)
Definition avx512fintrin.h:11699
#define _mm512_mask_cvt_roundpd_epu32(W, U, A, B)
Definition avx512fintrin.h:4997
#define _mm_maskz_getmant_round_ss(U, X, Y, C, D, R)
Definition avx512fintrin.h:9222
#define _mm_cmp_sd_mask(X, Y, P)
Definition avx512fintrin.h:15421
#define _mm512_mask_cvtt_roundpd_epi32(W, U, A, B)
Definition avx512fintrin.h:4908
#define _mm_fnmsub_round_sd(A, B, C, R)
Definition avx512fintrin.h:11872
__inline __m512i char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char char __q31
Definition avx512fintrin.h:129
#define _mm512_maskz_fnmsub_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:4010
#define _mm512_i64scatter_ps(ADDR, INDEX, V1, SCALE)
Definition avx512fintrin.h:10764
#define _mm512_shuffle_i64x2(X, Y, C)
Definition avx512fintrin.h:4643
#define _mm512_mask_shuffle_pd(W, U, X, Y, C)
Definition avx512fintrin.h:7323
#define _mm512_mask3_fmaddsub_round_pd(A, B, C, U, R)
Definition avx512fintrin.h:3935
#define _mm_comi_round_ss(A, B, C, D)
Definition avx512fintrin.h:12496
#define _mm512_maskz_fmaddsub_round_pd(U, A, B, C, R)
Definition avx512fintrin.h:3938
#define _mm_fixupimm_ss(X, Y, Z, C)
Definition avx512fintrin.h:14401
__inline __m512i short short short short short short short short short short short short short short __q17
Definition avx512fintrin.h:105
#define _mm512_mask_i32gather_ps(V1OLD, MASK, INDEX, ADDR, SCALE)
Definition avx512fintrin.h:10645
#define _CMP_UNORD_Q
Definition avxintrin.h:82
#define _CMP_LE_OS
Definition avxintrin.h:80
#define _CMP_ORD_Q
Definition avxintrin.h:90
#define _CMP_NEQ_UQ
Definition avxintrin.h:84
#define _CMP_NLT_US
Definition avxintrin.h:86
#define _CMP_LT_OS
Definition avxintrin.h:78
#define _CMP_EQ_OQ
Definition avxintrin.h:76
#define _CMP_NLE_US
Definition avxintrin.h:88
unsigned int __R
Definition pconfigintrin.h:58
#define _MM_FROUND_FLOOR
Definition smmintrin.h:52
#define _MM_FROUND_CEIL
Definition smmintrin.h:54
#define _MM_FROUND_CUR_DIRECTION
Definition smmintrin.h:45